Версии Grav с 1.5.2 по 2.0.12 содержат сохраненную уязвимость межсайтового скриптинга в функции Security::detectXss() (system/src/Grav/Common/Security.php). Сканирование обработчика событий привязано к `<` и использует `[^>]*?`, который не может пересекать первый литерал `>`; когда `>` появляется внутри значения атрибута в кавычках, браузер оставляет тег открытым и анализирует последующий обработчик событий (например, onerror), поэтому детектор и браузер расходятся во мнениях. Редактор страниц без привилегий admin.super может сохранять содержимое страницы, например `<img src=x title=">" onerror=alert(document.domain)>`, которое принимается, сохраняется и выполняется в источнике сайта, когда любой посетитель (включая неаутентифицированных пользователей) просматривает страницу.
Исправлено в версии 2.0.13.
Показать оригинальное описание (EN)
Grav versions from 1.5.2 through 2.0.12 contain a stored cross-site scripting vulnerability in the Security::detectXss() function (system/src/Grav/Common/Security.php). The event-handler scan is anchored at `<` and uses `[^>]*?`, which cannot cross the first literal `>`; when a `>` appears inside a quoted attribute value the browser keeps the tag open and parses a subsequent event handler (e.g. onerror), so the detector and browser disagree. A page editor without admin.super privileges can save page content such as `<img src=x title=">" onerror=alert(document.domain)>`, which is accepted, stored, and executed in the site origin when any visitor (including unauthenticated users) views the page. Fixed in 2.0.13.
Характеристики атаки
Последствия
Строка CVSS v4.0
Тип уязвимости (CWE)
Уязвимые продукты 20
| Конфигурация | От (включительно) | До (исключительно) |
|---|---|---|
|
Getgrav Grav
cpe:2.3:a:getgrav:grav:1.5.2:*:*:*:*:*:*:*
|
— | — |
|
Getgrav Grav
cpe:2.3:a:getgrav:grav:2.0.10:*:*:*:*:*:*:*
|
— | — |
|
Getgrav Grav
cpe:2.3:a:getgrav:grav:2.0.9:*:*:*:*:*:*:*
|
— | — |
|
Getgrav Grav
cpe:2.3:a:getgrav:grav:2.0.8:*:*:*:*:*:*:*
|
— | — |
|
Getgrav Grav
cpe:2.3:a:getgrav:grav:2.0.7:*:*:*:*:*:*:*
|
— | — |
|
Getgrav Grav
cpe:2.3:a:getgrav:grav:2.0.6:*:*:*:*:*:*:*
|
— | — |
|
Getgrav Grav
cpe:2.3:a:getgrav:grav:2.0.5:*:*:*:*:*:*:*
|
— | — |
|
Getgrav Grav
cpe:2.3:a:getgrav:grav:1.7.53.2:*:*:*:*:*:*:*
|
— | — |
|
Getgrav Grav
cpe:2.3:a:getgrav:grav:1.7.53.1:*:*:*:*:*:*:*
|
— | — |
|
Getgrav Grav
cpe:2.3:a:getgrav:grav:2.0.4:*:*:*:*:*:*:*
|
— | — |
|
Getgrav Grav
cpe:2.3:a:getgrav:grav:2.0.3:*:*:*:*:*:*:*
|
— | — |
|
Getgrav Grav
cpe:2.3:a:getgrav:grav:2.0.2:*:*:*:*:*:*:*
|
— | — |
|
Getgrav Grav
cpe:2.3:a:getgrav:grav:2.0.1:*:*:*:*:*:*:*
|
— | — |
|
Getgrav Grav
cpe:2.3:a:getgrav:grav:2.0.0:-:*:*:*:*:*:*
|
— | — |
|
Getgrav Grav
cpe:2.3:a:getgrav:grav:2.0.0:rc10:*:*:*:*:*:*
|
— | — |
|
Getgrav Grav
cpe:2.3:a:getgrav:grav:2.0.0:rc9:*:*:*:*:*:*
|
— | — |
|
Getgrav Grav
cpe:2.3:a:getgrav:grav:1.7.53:*:*:*:*:*:*:*
|
— | — |
|
Getgrav Grav
cpe:2.3:a:getgrav:grav:2.0.0:rc8:*:*:*:*:*:*
|
— | — |
|
Getgrav Grav
cpe:2.3:a:getgrav:grav:2.0.0:rc7:*:*:*:*:*:*
|
— | — |
|
Getgrav Grav
cpe:2.3:a:getgrav:grav:2.0.0:rc6:*:*:*:*:*:*
|
— | — |