CVE-2026-45066

CVE-2026-45066 is a medium-severity security vulnerability in symfony/html-sanitizer (composer), affecting versions >= 6.1.0, < 6.4.40. It is fixed in 6.4.40, 7.4.12, 8.0.12.

Does this CVE actually affect you?

Kodem shows which CVEs are reachable and running in your applications, so you fix what's exploitable, not just what's listed.

Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.

Runtime intelligence, not another scanner.

Summary

Symfony has an HtmlSanitizer allowLinkHosts() / allowMediaHosts() Bypass via URL-Parser Differentials and <area> Misclassification

Description

symfony/html-sanitizer lets applications sanitise untrusted HTML. The configuration methods allowLinkHosts([...]) and allowLinkSchemes([...]) are intended to restrict <a href> targets to an allowlist of hosts/schemes; allowMediaHosts() / allowMediaSchemes() do the same for <img src> etc.

Three distinct bypasses allow a content author to smuggle off-allowlist URLs past these checks. First, UrlSanitizer::parse() parses the input following RFC-3986, while browsers follow the WHATWG URL Standard which normalises \ to / before parsing the authority of "special" schemes; so an input like https://evil\@trusted.com/ parses with host trusted.com server-side but navigates to https://evil/ in the browser. Second, WHATWG collapses any run of / after the scheme into //, while RFC-3986 does not; so https:/evil.com/ and https:///evil.com/ parse as host-less (skipping the host allowlist) but resolve to evil.com in the browser. Third, UrlAttributeSanitizer checks 'a' === $element to route to the link policy and falls through to the media policy otherwise, but <area> is a navigable hyperlink equivalent to <a>; so <area href> was sanitised against the media policy (which typically allows data: and may have no host allowlist), bypassing allowLinkHosts() / allowLinkSchemes() entirely.

Resolution

UrlSanitizer::sanitize() now rejects URLs that contain a backslash or that use a special scheme (http, https, ftp, ws, wss) followed by a single slash or three slashes before parsing, eliminating the parser-differential bypasses. UrlAttributeSanitizer now applies the link policy to both <a> and <area> elements.

The patch for this issue is available here for branch 5.4.

Credits

Symfony would like to thank Claude Mythos Preview (via Project Glasswing) for reporting the issue and providing the fix.

Impact

Affected versions

symfony/html-sanitizer (>= 6.1.0, < 6.4.40) symfony/html-sanitizer (>= 7.0.0, < 7.4.12) symfony/html-sanitizer (>= 8.0.0, < 8.0.12) symfony/symfony (>= 6.1.0, < 6.4.40) symfony/symfony (>= 7.0.0, < 7.4.12) symfony/symfony (>= 8.0.0, < 8.0.12)

Security releases

symfony/html-sanitizer → 6.4.40 (composer) symfony/html-sanitizer → 7.4.12 (composer) symfony/html-sanitizer → 8.0.12 (composer) symfony/symfony → 6.4.40 (composer) symfony/symfony → 7.4.12 (composer) symfony/symfony → 8.0.12 (composer)

Kodem intelligence

Severity tells you how bad this could be in the worst case. It does not tell you whether you are exposed. Exploitability and impact are functions of runtime truth: whether the vulnerable code is present, reachable, and actually executes in your application. A vulnerable package can sit in your dependency tree and never run.

Kodem, an Intelligent Application Security platform, uses runtime intelligence to reveal which vulnerabilities actually execute in production, so teams prioritize the ones that genuinely matter. Kodem's runtime-powered SCA identifies whether this CVE is reachable in your applications.

Already deployed Kodem?

See it in your environmentNew to Kodem? Get a demo →

Remediation advice

Upgrade the following packages to resolve this vulnerability:

symfony/html-sanitizer to 6.4.40 or later; symfony/html-sanitizer to 7.4.12 or later; symfony/html-sanitizer to 8.0.12 or later; symfony/symfony to 6.4.40 or later; symfony/symfony to 7.4.12 or later; symfony/symfony to 8.0.12 or later

Kodem Kai can prioritize this vulnerability in your dependency tree and generate a fix recommendation.

Frequently Asked Questions

  1. What is CVE-2026-45066? CVE-2026-45066 is a medium-severity security vulnerability in symfony/html-sanitizer (composer), affecting versions >= 6.1.0, < 6.4.40. It is fixed in 6.4.40, 7.4.12, 8.0.12.
  2. Which packages are affected by CVE-2026-45066?
    • symfony/html-sanitizer (composer) (versions >= 6.1.0, < 6.4.40)
    • symfony/symfony (composer) (versions >= 6.1.0, < 6.4.40)
  3. Is there a fix for CVE-2026-45066? Yes. CVE-2026-45066 is fixed in 6.4.40, 7.4.12, 8.0.12. Upgrade to this version or later.
  4. Is CVE-2026-45066 exploitable, and should I be worried? Whether CVE-2026-45066 is exploitable in your environment depends on whether the vulnerable code is present and reachable. A CVSS score is a worst-case rating; it does not account for your specific deployment, configuration, or usage patterns. Kodem, an Intelligent Application Security platform, uses runtime intelligence to show which vulnerabilities actually execute in production, so you can focus on the ones that represent real risk. Get a demo
  5. What actually determines whether CVE-2026-45066 is exploitable, and how bad it is? Exploitability and impact are not fixed properties of a CVE. They depend on runtime truth: whether the vulnerable code is present, reachable, and actually executes in your application. A high CVSS score on a dependency that never runs is not the same as real risk. Kodem, an Intelligent Application Security platform, uses runtime intelligence to reveal which vulnerabilities actually execute in production, so teams prioritize the ones that genuinely matter.
  6. How do I fix CVE-2026-45066?
    • Upgrade symfony/html-sanitizer to 6.4.40 or later
    • Upgrade symfony/html-sanitizer to 7.4.12 or later
    • Upgrade symfony/html-sanitizer to 8.0.12 or later
    • Upgrade symfony/symfony to 6.4.40 or later
    • Upgrade symfony/symfony to 7.4.12 or later
    • Upgrade symfony/symfony to 8.0.12 or later

Other vulnerabilities in symfony/html-sanitizer

Stop the waste.
Protect your environment with Kodem.