symfony/twig-bridge security advisory
CVE-2026-45072: Stored XSS in WebProfiler CodeExtension::fileExcerpt(): Unescaped Non-PHP File Rendering in symfony/twig-bridge
CVE-2026-45072 is a low-severity stored XSS vulnerability in the PHP package symfony/twig-bridge (CVSS 5.4), published 14 July 2026. It is fixed in 6.4.40; earlier versions are affected. Exploiting it needs a low-privilege user account.
low 5.4 published 2026-07-14 · updated 2026-07-16
- Affected versions
- >= 6.4.24, < 6.4.40
- Fixed in
- 6.4.40
- Newest release
- 8.1.10
- Severity
- Low · CVSS 5.4
- Type
- Stored cross-site scripting (XSS)
CWE-79 - Exploited in the wild
- Not on the CISA KEV list
checked 2026-11-04
Also affects
- symfony/symfony >= 6.4.24, < 6.4.40; >= 7.2.9, < 7.4.12; >= 8.0.0, < 8.0.12 fixed in 6.4.40, 7.4.12, 8.0.12
Is your symfony/twig-bridge version affected?
Who can exploit CVE-2026-45072
- Access: A normal, low-privilege user account in the app.
- Interaction: A user also has to do something, such as open a link or a page the attacker prepared.
CVSS vector (scored by NVD): CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N
How to fix CVE-2026-45072 in symfony/twig-bridge
- Find the installed version:
composer show symfony/twig-bridge. If you never required it yourself,composer why symfony/twig-bridgeshows which package pulls it in. - Update it:
composer update symfony/twig-bridge --with-all-dependencies. You need 6.4.40 or newer. - If Composer will not go that high, your composer.json constraint is holding it back. Widen it (for example
"symfony/twig-bridge": "^6.4.40"if you can take that version), or upgrade the package that requires it. - Run
composer audit. It reads the same advisory data and should no longer list CVE-2026-45072. - Commit composer.lock and deploy it. On the server, run
composer install --no-devfrom the lock file, notcomposer update.
If you cannot upgrade yet
- Escape output in your own templates and add a Content-Security-Policy that blocks inline scripts.
- Limit who can save the content the advisory names (for example rich text, SVG or form fields).
- If your app does not use the affected feature, note that in your audit, but still plan the upgrade.
The CVE-2026-45072 advisory
Symfony is a PHP framework for web and console applications and a set of reusable PHP components. From 6.4.24 until 6.4.40, 7.4.12, and 8.0.12, the development profiler file_excerpt Twig filter escapes PHP files through highlight_string() but interpolates lines from non-PHP files directly into <code> elements, allowing stored XSS against a developer who opens an attacker-written file such as var/log/dev.log in the profiler. This issue is fixed in versions 6.4.40, 7.4.12, and 8.0.12.
References
- GitHub security advisory GHSA-hmr5-2xcr-v8pp github.com
- Symfony security advisory symfony.com
- Fix commit 863aa81 github.com
- Release v6.4.40 github.com
- Release v7.4.12 github.com
- Release v8.0.12 github.com
Other symfony/twig-bridge advisories
- medium CVE-2023-46734: Potential XSS vulnerabilities in CodeExtension filters 2023-11-10
Related
Need help patching or upgrading? Laskyr does PHP and Laravel security fixes and upgrades. Tell us what you run and we reply with a plan and a price.
Ask about a fixWhere this data comes from
- Affected and fixed versions: the Packagist security advisories API (GitHub Advisory Database and FriendsOfPHP), the same data
composer audituses. Synced 2026-11-03. - Description, score, weakness and references: NIST National Vulnerability Database (NVD), checked 2026-11-04. This product uses data from the NVD API but is not endorsed or certified by the NVD.
- Exploited-in-the-wild status: the CISA Known Exploited Vulnerabilities catalog, checked 2026-11-04.
- Compiled by Daniel Lasek at Laskyr from the sources above. The summary, “who can exploit it”, “how to fix it” and hardening sections are our plain-English reading of the record and are generated from it. The quoted description is the record's own text. Spot an error? Tell us.