| Título | pbootcmspro PbootCMS <=V3.2.22 Incomplete Denylist to Cross-Site Scripting |
|---|
| Descrição | When creating or editing an article in the admin panel, the `title` field is passed through `escape_string()`, which encodes it into HTML entities using `htmlspecialchars()`, before it is stored in the database. On the frontend, when the content is read, `->decode()` → `decode_string()` decodes the entities back to the original characters, and the result is then output directly in the `default` branch of the template rendering without a second filtering pass through `filter_html()`. Consequently, HTML/event attributes submitted by an attacker, such as `<script>`, are rendered as raw HTML on the article detail page, list page, and homepage, resulting in stored XSS. An attacker only needs the "content creation/modification" permission (a normal editor role is sufficient) to inject persistent scripts that execute arbitrary JavaScript in the browsers of all users visiting the article/list/homepage, enabling theft of cookies, sessions, sensitive backend data, or phishing. This encode→decode→direct output chain is a long-standing design, and the V3.2.x series is presumed to be affected. |
|---|
| Fonte | ⚠️ https://github.com/pbootcmspro/PbootCMS/issues/69 |
|---|
| Utilizador | rockmelodeis (UID 100628) |
|---|
| Submissão | 19/08/2026 10h18 (há 28 dias) |
|---|
| Moderação | 16/09/2026 09h57 (28 days later) |
|---|
| Estado | Aceite |
|---|
| Entrada VulDB | 405518 [PbootCMS até 3.2.22 Template Rendering ContentController.php decode_string Título Script de Site Cruzado] |
|---|
| Pontos | 20 |
|---|