symfony/yaml security advisory
CVE-2026-45304: YAML Parser Exponential Memory Allocation via Recursive Collection-Alias Expansion ("Billion Laughs")
CVE-2026-45304 is a low-severity security vulnerability in the PHP package symfony/yaml (CVSS 7.5), published 14 July 2026. It is fixed in 5.4.52, 6.4.40, 7.4.12 and 8.0.12, one per release line; earlier versions on each line are affected. It can be exploited without an account.
low 7.5 published 2026-07-14 · updated 2026-07-15
- Affected versions
- >= 2.0.0, < 5.4.52
>= 6.0.0, < 6.4.40
>= 7.0.0, < 7.4.12
>= 8.0.0, < 8.0.12 - Fixed in
- 5.4.52, 6.4.40, 7.4.12, 8.0.12
- Newest release
- 8.1.10
- Severity
- Low · CVSS 7.5
- Type
- Security issue
CWE-776 - Exploited in the wild
- Not on the CISA KEV list
checked 2026-11-04
Also affects
- symfony/symfony >= 2.0.0, < 5.4.52; >= 6.0.0, < 6.4.40; >= 7.0.0, < 7.4.12; >= 8.0.0, < 8.0.12 fixed in 5.4.52, 6.4.40, 7.4.12, 8.0.12
Is your symfony/yaml version affected?
Who can exploit CVE-2026-45304
- Access: No account. Anyone who can send a request to an app that uses the affected code.
CVSS vector (scored by NVD): CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
How to fix CVE-2026-45304 in symfony/yaml
- Find the installed version:
composer show symfony/yaml. If you never required it yourself,composer why symfony/yamlshows which package pulls it in. - Update it:
composer update symfony/yaml --with-all-dependencies. You need the fixed version for your release line (5.4.52, 6.4.40, 7.4.12 and 8.0.12). - If Composer will not go that high, your composer.json constraint is holding it back. Widen it (for example
"symfony/yaml": "^8.0.12"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-45304. - Commit composer.lock and deploy it. On the server, run
composer install --no-devfrom the lock file, notcomposer update.
If you cannot upgrade yet
- If your app does not use the affected feature, note that in your audit, but still plan the upgrade.
The CVE-2026-45304 advisory
Symfony is a PHP framework for web and console applications and a set of reusable PHP components. Prior to 5.4.52, 6.4.40, 7.4.12, and 8.0.12, Symfony\Component\Yaml\Parser resolved YAML collection aliases recursively, allowing a small untrusted YAML input to expand into a multi-gigabyte structure and exhaust memory. This issue is fixed in versions 5.4.52, 6.4.40, 7.4.12, and 8.0.12.
References
- GitHub security advisory GHSA-4qpc-3hr4-r2p4 github.com
- Symfony security advisory symfony.com
- Fix commit e77391b github.com
- Release v5.4.52 github.com
- Release v6.4.40 github.com
- Release v7.4.12 github.com
- Release v8.0.12 github.com
Other symfony/yaml advisories
- high CVE-2026-109413: Unbounded Recursion in the YAML Inline Lexer Lets a Single Document Crash the Process 2026-08-30
- low CVE-2026-45305: YAML Parser ReDoS via Catastrophic Backtracking in Parser::cleanup() Regex 2026-05-20
- low CVE-2026-45133: YAML Parser Stack Exhaustion via Unbounded Recursion in Nested Blocks, Sequences, and Mappings 2026-05-20
- high CVE-2013-1397: Ability to enable/disable object support in YAML parsing and dumping 2013-01-15
- high CVE-2013-1348: Ability to enable/disable PHP parsing in Yaml::parse() 2013-01-15
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.