Логотип exploitDog
Консоль
Логотип exploitDog

exploitDog

github логотип

GHSA-x5qj-865h-mgvm

Опубликовано: 15 июн. 2026
Источник: github
Github: Прошло ревью
CVSS4: 5.3

Описание

Symfony: HtmlSanitizer UrlAttributeSanitizer Misses URL Attributes

Description

Symfony\Component\HtmlSanitizer\Visitor\AttributeSanitizer\UrlAttributeSanitizer::getSupportedAttributes() enumerates the attribute names whose values are scrubbed through UrlSanitizer::sanitize() (scheme and host allow-lists, javascript: rejection, BiDi check, etc.). The list is ['src', 'href', 'lowsrc', 'background', 'ping', 'action', 'formaction', 'poster', 'cite']. Other URL-bearing attributes are absent: <object data=…>, <applet codebase=…>, <applet archive=…> and <object archive=…>, <iframe longdesc=…> and <img longdesc=…>. When an integrator opts these elements/attributes in via allowElement('object', ['data']), allowElement('applet', ['codebase']), etc., or via allowAttribute(), no URL sanitization runs: data="javascript:alert(1)" and similar payloads ship through unchanged into the output, enabling stored XSS.

<meta http-equiv="refresh" content="0; url=…"> is the same class of bug routed differently: the URL is embedded inside a multi-field content attribute that the per-attribute sanitizer cannot detect from the attribute name alone. Integrators who enable <meta> with the content attribute (e.g. via allowStaticElements()) see content="0; url=javascript:alert(1)" pass through, producing a refresh-driven navigation to a javascript: URL.

Default configurations are not affected: <object>, <applet> and <iframe> are not in W3CReference::BODY_ELEMENTS and <meta> requires an explicit opt-in to <head> context. The vulnerability surface is integrators who explicitly allow any of those elements together with the listed URL-bearing attributes.

Resolution

UrlAttributeSanitizer now also routes data, codebase, archive and longdesc through UrlSanitizer::sanitize(). A new MetaRefreshAttributeSanitizer registered as a default attribute sanitizer detects the <delay>; url=<url> syntax inside <meta content>, sanitizes the embedded URL, and drops the attribute if the URL is rejected; non-refresh meta content values are passed through unchanged.

The patches for this issue are available here for branch 6.4 (and forward-ported to 7.4, 8.0 and 8.1).

Credits

Symfony would like to thank Scott Arciszewski (Trail of Bits) for reporting the issue and Nicolas Grekas for providing the fix.

Пакеты

Наименование

symfony/html-sanitizer

composer
Затронутые версииВерсия исправления

>= 6.1.0, < 6.4.41

6.4.41

Наименование

symfony/html-sanitizer

composer
Затронутые версииВерсия исправления

>= 7.0.0, < 7.4.13

7.4.13

Наименование

symfony/html-sanitizer

composer
Затронутые версииВерсия исправления

>= 8.0.0, < 8.0.13

8.0.13

Наименование

symfony/symfony

composer
Затронутые версииВерсия исправления

>= 6.1.0, < 6.4.41

6.4.41

Наименование

symfony/symfony

composer
Затронутые версииВерсия исправления

>= 7.0.0, < 7.4.13

7.4.13

Наименование

symfony/symfony

composer
Затронутые версииВерсия исправления

>= 8.0.0, < 8.0.13

8.0.13

EPSS

Процентиль: 19%
0.00268
Низкий

5.3 Medium

CVSS4

Дефекты

CWE-1023
CWE-79

Связанные уязвимости

CVSS3: 6.1
ubuntu
16 дней назад

Symfony is a PHP framework for web and console applications and a set of reusable PHP components. From 6.1.0 until 6.4.41, 7.4.13, and 8.0.13, UrlAttributeSanitizer::getSupportedAttributes() omitted URL-bearing attributes on <object>, <applet>, <iframe>, and <img>, and <meta http-equiv="refresh"> URLs inside content bypassed URL sanitization, allowing explicitly enabled elements or attributes to pass javascript: and similar payloads into sanitized output. This issue is fixed in versions 6.4.41, 7.4.13, and 8.0.13.

CVSS3: 6.1
nvd
16 дней назад

Symfony is a PHP framework for web and console applications and a set of reusable PHP components. From 6.1.0 until 6.4.41, 7.4.13, and 8.0.13, UrlAttributeSanitizer::getSupportedAttributes() omitted URL-bearing attributes on <object>, <applet>, <iframe>, and <img>, and <meta http-equiv="refresh"> URLs inside content bypassed URL sanitization, allowing explicitly enabled elements or attributes to pass javascript: and similar payloads into sanitized output. This issue is fixed in versions 6.4.41, 7.4.13, and 8.0.13.

CVSS3: 6.1
debian
16 дней назад

Symfony is a PHP framework for web and console applications and a set ...

EPSS

Процентиль: 19%
0.00268
Низкий

5.3 Medium

CVSS4

Дефекты

CWE-1023
CWE-79