{"id":"CVE-2026-109413","summary":"Symfony: Unbounded Recursion in the YAML Inline Lexer Lets a Single Document Crash the Process","details":"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.\n\n\n\nAny 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.\n\n\n\nThis 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.","aliases":["GHSA-2v3c-qxhr-7vpv"],"modified":"2026-10-16T02:47:44.696602796Z","published":"2026-10-15T14:57:00.211Z","database_specific":{"osv_generated_from":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/109xxx/CVE-2026-109413.json","cna_assigner":"Checkmarx","cwe_ids":["CWE-674"]},"references":[{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/109xxx/CVE-2026-109413.json"},{"type":"FIX","url":"https://github.com/symfony/symfony/pull/65688"},{"type":"ADVISORY","url":"https://github.com/symfony/symfony/security/advisories/GHSA-2v3c-qxhr-7vpv"},{"type":"PACKAGE","url":"https://github.com/symfony/yaml"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-109413"},{"type":"WEB","url":"https://packagist.org/packages/symfony/yaml"},{"type":"ADVISORY","url":"https://symfony.com/blog/cve-2026-109413-unbounded-recursion-in-the-yaml-inline-lexer-lets-a-single-document-crash-the-process"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://github.com/symfony/yaml","events":[{"introduced":"0"},{"fixed":"f27a7131106e8cb792d434e8faea7f3ffb615263"},{"introduced":"78ba96788a30db0846f50085435f332b03ff1c83"},{"fixed":"a778aba2d7130eba6150cc80cb692988a361ee4b"},{"introduced":"60bb70d63af1b4e2e6fe46fe389cf169a703bd62"},{"fixed":"4cef939e55b8a21c5780418de0d98ab00d0736e1"},{"introduced":"234674588d1573f67bfdea6804fe3079414f5e30"},{"fixed":"0b4aa53a67f9fece88c665f1a1dadcfd25d93fe5"}],"database_specific":{"source":"AFFECTED_FIELD","extracted_events":[{"introduced":"0"},{"fixed":"v5.4.54"},{"introduced":"v6.0.0-BETA1"},{"fixed":"v6.4.45"},{"introduced":"v7.0.0-BETA1"},{"fixed":"v7.4.18"},{"introduced":"v8.0.0-BETA1"},{"fixed":"v8.1.6"}]}}],"versions":["v8.1.5","v7.4.17","v5.4.53","v6.4.44","v7.4.15","v6.4.43","v8.1.2","v8.1.1","v7.4.14","v6.4.42","v8.1.0","v8.1.0-RC1","v7.4.13","v6.4.41","v8.1.0-BETA3","v7.4.12","v6.4.40","v5.4.52","v7.4.11","v6.4.39","v8.1.0-BETA2","v7.4.10","v6.4.38","v8.1.0-BETA1","v5.4.45","v6.4.34","v7.4.8","v7.4.6","v8.0.1","v7.4.1","v6.4.30","v8.0.0-RC2","v8.0.0","v7.4.0-RC2","v7.4.0","v8.0.0-RC1","v7.4.0-RC1","v8.0.0-BETA1","v7.4.0-BETA1","v6.4.26","v6.4.25","v6.4.24","v6.4.23","v7.3.0-RC1","v7.3.0-BETA1","v7.3.0","v6.4.21","v6.4.20","v6.4.18","v7.2.0-RC1","v7.2.0-BETA1","v7.2.0","v6.4.13","v6.4.12","v5.4.44","v6.4.11","v5.4.43","v7.1.1","v6.4.8","v5.4.40","v7.1.0-RC1","v7.1.0-BETA1","v7.1.0","v6.4.7","v5.4.39","v6.4.3","v5.4.35","v7.0.0-RC1","v7.0.0-BETA3","v7.0.0","v6.4.0-RC1","v6.4.0-BETA3","v6.4.0","v5.4.31","v7.0.0-BETA2","v6.4.0-BETA2","v5.4.30","v7.0.0-BETA1","v6.4.0-BETA1","v5.4.23","v6.3.0-RC1","v6.3.0-BETA1","v6.3.0","v5.4.21","v5.4.19","v6.2.2","v5.4.17","v6.2.0-RC2","v6.2.0","v5.4.16","v6.2.0-RC1","v6.2.0-BETA3","v5.4.14","v6.2.0-BETA1","v5.4.12","v5.4.11","v6.1.2","v5.4.10","v6.1.0-RC1","v6.1.0-BETA2","v6.1.0","v5.4.3","v6.1.0-BETA1","v5.4.2","v5.4.0","v6.0.0","v6.0.0-RC1","v5.4.0-RC1","v6.0.0-BETA2","v5.4.0-BETA2","v6.0.0-BETA1","v5.4.0-BETA1","v5.3.0-RC1","v5.3.0-BETA2","v5.3.0-BETA1","v5.2.0-RC2","v5.2.0-RC1","v5.2.0-BETA3","v5.1.8","v5.1.7","v5.1.6","v5.1.5","v5.1.4","v5.1.3","v5.1.2","v5.1.1","v5.1.0-RC2","v5.1.0","v5.1.0-RC1","v5.1.0-BETA1","v5.0.0-RC1","v5.0.0-BETA2","v5.0.0-BETA1","v4.3.2","v4.3.1","v4.3.0-RC1","v4.3.0-BETA2","v4.3.0-BETA1","v4.3.0","v4.2.1","v4.2.0-RC1","v4.2.0-BETA2","v4.2.0","v4.2.0-BETA1","v4.1.0-BETA3","v4.1.0-BETA2","v4.1.0-BETA1","v4.0.0-RC2","v4.0.0-RC1","v4.0.0-BETA4","v4.0.0-BETA3","v4.0.0-BETA2","v4.0.0-BETA1","v3.3.0-RC1","v3.3.0-BETA1","v3.2.0-RC2","v3.2.0","v3.2.0-RC1","v3.2.0-BETA1","v3.1.0-BETA1","v3.0.0","v3.0.0-BETA1","v2.6.0-BETA1","v2.5.0-RC1","v2.5.0","v2.5.0-BETA2","v2.5.0-BETA1","v2.4.0-RC1","v2.4.0-BETA2","v2.4.0-BETA1","v2.3.1","v2.3.0","v2.2.0","v2.1.2","v2.1.1","v2.1.0","v2.0.1","v2.0.0"],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-109413.json"}}],"schema_version":"1.9.0","severity":[{"type":"CVSS_V4","score":"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"}]}