Description
The Symfony Yaml components Inline and Parser, parse some YAML documents inefficiently, so that a small crafted document can take disproportionately long to process, keeping a PHP process busy for seconds or minutes, potentially causing a denial of service in Symfony versions prior to 5.4.56, 6.x prior to 6.4.50, 7.x prior to 7.4.23, and 8.x prior to 8.1.11.

The parser repeats work it has already done in several places. An embedded mapping in a flow sequence is parsed again for every scalar appended to it, and so are the collections nested in it, so the parse time grows exponentially with the nesting depth. The patterns matching mapping keys and tags scan a run of spaces once per character of the run, and each scalar of a flow collection is matched against a copy of the rest of the collection, so the parse time grows quadratically with the size of the input. Nested blocks are also copied at each nesting level, which consumes memory as well as time. A few other constructs, such as an empty sequence item followed by a blank line or an anchor named 0, trigger similar repeated work.


Any code parsing untrusted YAML is affected, with the default flags. In Symfony 7.4 and later, 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 keeps a PHP worker busy until max_execution_time. JSON documents are valid YAML, so a JSON payload sent with a YAML content type is enough for the flow collection case. In Symfony 6.4, #[MapRequestPayload] accepts YAML only when the application registers a yaml request format.
Published: 2026-11-06
Score: 8.7 High
EPSS: n/a
KEV: No
Impact: Denial of Service via excessive YAML parsing
Action: Patch
AI Analysis

Impact

The Symfony Yaml component parses certain YAML documents with poorly designed algorithms that repeat work for each element in a flow collection or for each space in a run of characters. This causes exponential or quadratic growth in parse time and can consume a PHP worker for seconds or minutes when presented with a small crafted input. The result is a denial of service of the affected Symfony application. The vulnerability is an example of CWE‑1333 Resource Exhaustion and CWE‑407 Improper Use of Expensive Software Functions.

Affected Systems

Any Symfony installation that uses the Yaml component with default flags and parses external YAML is vulnerable. The published versions affected are Symfony 5.4 before 5.4.56, Symfony 6.x before 6.4.50, Symfony 7.x before 7.4.23, and Symfony 8.x before 8.1.11. In Symfony 7.4 and later this also includes endpoints that use #[MapRequestPayload] with an unrestrictive acceptFormat. A single unauthenticated HTTP request with a YAML content type, or even a JSON payload sent as YAML, can trigger the slowdown.

Risk and Exploitability

The CVSS score of 8.7 indicates high severity. EPSS is not available, so the reported likelihood of exploitation cannot be quantified, but the vulnerability is listed in no KEV catalog. The attack vector is remote: an attacker can simply send crafted YAML (including malformed JSON that is valid YAML) to any endpoint that accepts YAML content. Because the vulnerability does not require privileged access and the parsing is performed for each request, exploitation effort is low and can easily lead to denial of service for affected applications.

Generated by OpenCVE AI on November 6, 2026 at 16:38 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade Symfony to at least 5.4.56, 6.4.50, 7.4.23, or 8.1.11 where the Yaml parser has been fixed.
  • If an upgrade is not yet possible, restrict or disable YAML parsing for unauthenticated or untrusted endpoints, e.g., by removing #[MapRequestPayload] or configuring it to accept only trusted formats.
  • Supplementary precautions include raising the max_execution_time or applying server‑level rate limiting to traffic that could be used to exploit the parser.

Generated by OpenCVE AI on November 6, 2026 at 16:38 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Fri, 06 Nov 2026 15:30:00 +0000

Type Values Removed Values Added
Description The Symfony Yaml components Inline and Parser, parse some YAML documents inefficiently, so that a small crafted document can take disproportionately long to process, keeping a PHP process busy for seconds or minutes, potentially causing a denial of service in Symfony versions prior to 5.4.56, 6.x prior to 6.4.50, 7.x prior to 7.4.23, and 8.x prior to 8.1.11. The parser repeats work it has already done in several places. An embedded mapping in a flow sequence is parsed again for every scalar appended to it, and so are the collections nested in it, so the parse time grows exponentially with the nesting depth. The patterns matching mapping keys and tags scan a run of spaces once per character of the run, and each scalar of a flow collection is matched against a copy of the rest of the collection, so the parse time grows quadratically with the size of the input. Nested blocks are also copied at each nesting level, which consumes memory as well as time. A few other constructs, such as an empty sequence item followed by a blank line or an anchor named 0, trigger similar repeated work. Any code parsing untrusted YAML is affected, with the default flags. In Symfony 7.4 and later, 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 keeps a PHP worker busy until max_execution_time. JSON documents are valid YAML, so a JSON payload sent with a YAML content type is enough for the flow collection case. In Symfony 6.4, #[MapRequestPayload] accepts YAML only when the application registers a yaml request format.
Title Symfony: Exponential and Quadratic Parse Times in the YAML Parser Let a Single Document Hold a Process
First Time appeared Sensiolabs
Sensiolabs symfony
Weaknesses CWE-1333
CWE-407
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-11-06T15:19:58.366Z

Reserved: 2026-11-06T14:48:55.784Z

Link: CVE-2026-123792

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-11-06T16:17:55.463

Modified: 2026-11-06T16:17:55.463

Link: CVE-2026-123792

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-11-06T18:15:06Z

Weaknesses
  • CWE-1333

    Inefficient Regular Expression Complexity

  • CWE-407

    Inefficient Algorithmic Complexity