symfony/yaml security advisory
CVE-2026-109413: Unbounded Recursion in the YAML Inline Lexer Lets a Single Document Crash the Process
CVE-2026-109413 is a high-severity security vulnerability in the PHP package symfony/yaml (CVSS 8.7), published 15 October 2026. It is fixed in 5.4.54, 6.4.45, 7.4.18 and 8.1.6, one per release line; earlier versions on each line are affected. It can be exploited without an account.
high 8.7 published 2026-10-15 · updated 2026-10-16
- Affected versions
- >= 2.0.0, < 5.4.54
>= 6.0.0, < 6.4.45
>= 7.0.0, < 7.4.18
>= 8.0.0, < 8.1.6 - Fixed in
- 5.4.54, 6.4.45, 7.4.18, 8.1.6
- Newest release
- 8.1.10
- Severity
- High · CVSS 8.7
- Type
- Security issue
CWE-674 - Exploited in the wild
- Not on the CISA KEV list
checked 2026-11-04
Also affects
- symfony/symfony >= 2.0.0, < 5.4.54; >= 6.0.0, < 6.4.45; >= 7.0.0, < 7.4.18; >= 8.0.0, < 8.1.6 fixed in 5.4.54, 6.4.45, 7.4.18, 8.1.6
Is your symfony/yaml version affected?
Who can exploit CVE-2026-109413
- Access: No account. Anyone who can send a request to an app that uses the affected code.
CVSS vector: CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
How to fix CVE-2026-109413 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.54, 6.4.45, 7.4.18 and 8.1.6). - If Composer will not go that high, your composer.json constraint is holding it back. Widen it (for example
"symfony/yaml": "^8.1.6"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-109413. - 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-109413 advisory
In Symfony YAML prior to versions 5.4.54, 6.4.45, 7.4.18, and 8.1.6, Yaml\Parser::lexInlineStructure() recursed through lexInlineMapping() and lexInlineSequence() for every { and [ of an inline collection, without entering the nesting level that the rest of the parser bounds with maxNestingLevel. A document made of deeply nested inline collections, such as [[[[...]]]], exhausted the stack while it was being lexed: depending on the PHP version and its stack settings, the process crashed or the request ended with a fatal error. Any code parsing untrusted YAML is affected. That includes #[MapRequestPayload] when the Yaml component is installed and the endpoint does not restrict acceptFormat: a single unauthenticated request with a YAML content type is enough. This issue affects symfony/yaml through v5.4.53, v6.0.0-BETA1 through v6.4.44, v7.0.0-BETA1 through v7.4.17, and v8.0.0-BETA1 through v8.1.5.
References
- GitHub security advisory GHSA-2v3c-qxhr-7vpv github.com
- Symfony security advisory symfony.com
- Symfony security advisory symfony.com
- Pull request #65688 github.com
Other symfony/yaml advisories
- low CVE-2026-45304: YAML Parser Exponential Memory Allocation via Recursive Collection-Alias Expansion ("Billion Laughs") 2026-05-20
- 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.