Description
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.
Published: 2026-10-15
Score: 8.7 High
EPSS: < 1% Very Low
KEV: No
Impact: Denial of Service (Crash)
Action: Patch immediately
AI Analysis

Impact

Unbounded recursion in Symfony's YAML Inline lexer causes stack exhaustion when parsing deeply nested inline collections. The flaw resides in Yaml\Parser::lexInlineStructure which recurses without respecting the parser's maxNestingLevel limit, leading to a fatal error or process crash. An attacker can trigger this with a single unauthenticated HTTP request containing a malicious YAML payload, resulting in denial of service for the affected application.

Affected Systems

The vulnerability affects the Symfony framework (YAML component) in all releases before 5.4.54, 6.4.45, 7.4.18, 8.1.6, and the intermediary beta ranges listed. Any installation that parses untrusted YAML, such as controllers using #[MapRequestPayload] without restricting acceptFormat, is affected.

Risk and Exploitability

The CVSS score of 8.7 indicates high severity, but the EPSS score of less than 1% suggests a very low current exploitation probability. The issue is not in the CISA KEV catalog. An attacker can exploit this remotely via HTTP by sending a crafted YAML document; no privileged access is required. The lack of a defensive workaround increases the risk for unsupplemented systems.

Generated by OpenCVE AI on October 16, 2026 at 20:34 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade the Symfony framework to versions 5.4.54, 6.4.45, 7.4.18, or 8.1.6 or later.
  • If an upgrade cannot be performed immediately, restrict YAML parsing to authenticated endpoints or set acceptFormat to disallow YAML where possible.
  • Monitor for fatal errors or stack overflows in application logs and add application-level rate limiting to mitigate repeated requests.

Generated by OpenCVE AI on October 16, 2026 at 20:34 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-2v3c-qxhr-7vpv Symfony: Unbounded Recursion in the YAML Inline Lexer Lets a Single Document Crash the Process
History

Thu, 15 Oct 2026 19:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'yes', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Thu, 15 Oct 2026 15:45:00 +0000

Type Values Removed Values Added
Description 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 prior to v5.4.54, v6.0.0-BETA1 prior to v6.4.45, v7.0.0-BETA1 prior to v7.4.18, and v8.0.0-BETA1 prior to v8.1.6. 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.

Thu, 15 Oct 2026 15:00:00 +0000

Type Values Removed Values Added
Description 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 prior to v5.4.54, v6.0.0-BETA1 prior to v6.4.45, v7.0.0-BETA1 prior to v7.4.18, and v8.0.0-BETA1 prior to v8.1.6.
Title Symfony: Unbounded Recursion in the YAML Inline Lexer Lets a Single Document Crash the Process
First Time appeared Sensiolabs
Sensiolabs symfony
Weaknesses CWE-674
CPEs cpe:2.3:a:sensiolabs:symfony:*:*:*:*:*:*:*:*
Vendors & Products Sensiolabs
Sensiolabs symfony
References
Metrics cvssV4_0

{'score': 8.7, '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'}


Subscriptions

Sensiolabs Symfony
cve-icon MITRE

Status: PUBLISHED

Assigner: Checkmarx

Published:

Updated: 2026-10-15T18:06:55.183Z

Reserved: 2026-10-12T15:28:55.069Z

Link: CVE-2026-109413

cve-icon Vulnrichment

Updated: 2026-10-15T18:06:46.297Z

cve-icon NVD

Status : Awaiting Analysis

Published: 2026-10-15T15:17:24.993

Modified: 2026-10-16T16:00:33.533

Link: CVE-2026-109413

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-10-17T10:30:07Z

Weaknesses