CVE-2026-45072
mediumpriority · track · 22EPSS 0.003 · 23 %ileEUUSEPSS · scored 2026-10-27
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.
cvss
Technical severity, 0–10. One row per scoring source.
base score 0–10 · higher = more severe · hover a vector to decode⚠ sources disagree · low–medium · 0.4–5.4
ssvc
A stakeholder decision — act, attend, or track — from exploitation and impact.
weaknesses
The CWE weakness classes this flaw belongs to.
affected products (15)
Products and version ranges known to be affected.
advisories (1)
Vendor and ecosystem advisories describing this.
- GHSA-hmr5-2xcr-v8ppSymfony Vulnerable to stored XSS in WebProfiler CodeExtension::fileExcerpt() — Unescaped Non-PHP File Rendering2026-05-27ghsa · osvUS
### Description Symfony's profiler, a development only debug UI, renders source-code excerpts on several pages using Twig's custom `file_excerpt` filter. This filter renders PHP files via `highlight_string()` (which escapes HTML), but renders **non-PHP files** by splitting on `\n` and interpolating each line directly into `<code>{$line}</code>` with no escaping. An attacker who can write arbitrary bytes into any file under the project root (including e.g. `var/log/dev.log`), achieves **stored XSS** against any developer who later opens that file in the profiler. ### Resolution The `file_excerpt` filter now properly escapes each line of non-PHP files using `htmlspecialchars()` before concatenating them. The patch for this issue is available [here](https://github.com/symfony/symfony/commit/863aa81c61166f1aa74b7732df316f76113acbdb) for branch 6.4. ### Credits Symfony would like to thank Claude Mythos Preview (via Project Glasswing) for reporting the issue and providing the fix.
also known as (3)
Other names and identifiers for this entity.
sources
Which sources assert this record, and when.
references (16)
External citations — patches, advisories, analysis.
- https://github.com/symfony/symfony/commit/863aa81c61166f1aa74b7732df316f76113acbdbcnnvd
- https://github.com/symfony/symfony/releasesPatchcnnvd
- https://github.com/symfony/symfony/releases/tag/v6.4.40cnnvd
- https://github.com/symfony/symfony/releases/tag/v7.4.12cnnvd
- https://github.com/symfony/symfony/releases/tag/v8.0.12cnnvd
- https://github.com/symfony/symfony/security/advisories/GHSA-hmr5-2xcr-v8ppcnnvd
- https://github.com/symfony/symfony/commit/863aa81c61166f1aa74b7732df316f76113acbdbenisa_euvd
- https://github.com/symfony/symfony/releases/tag/v6.4.40enisa_euvd
Attackers weaponise vulnerabilities like this against internet-exposed services. See what is exposed on your perimeter with a free passive scan.
Free scan