Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessIdentify internet-facing Symfony app
-
DeliveryCraft Cache-Control header with whitespace-before-separator in 8KB value
-
ExploitSend unauthenticated HTTP requests
-
ExecutionTrigger catastrophic regex backtracking in HeaderUtils::split()
-
ImpactExhaust server CPU and deny service
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V2 - Validation and Business Logic Regex complexity limits
MITRE ATT&CK
1 technique across 1 tactic: Impact The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | No special configuration is required: the vulnerable HeaderUtils::split() is invoked automatically by HeaderBag for the Cache-Control header every time a Request object is built, so any Symfony http-foundation deployment (v4.1.0-BETA1 up to the fixed 5.4.54/6.4.46/7.4.19/8.1.7 releases) handling HTTP requests is exploitable by an unauthenticated remote attacker against default configurations. The attacker only needs to control the Cache-Control request header and place a run of whitespace immediately before a separator within a large header value. Limiting factors: per-request CPU cost is bounded by PHP's pcre.backtrack_limit (at 18+ spaces preg_match_all gives up and split returns empty), cost scales with PHP version and header size (~813 ms per request at 17 spaces in an 8 KB header on PHP 8.5), so sustained denial of service requires sending many such requests rather than a single packet. |
| Impact | This is a genuine, easily-reachable denial-of-service issue rather than a high-CVSS-but-low-real-risk item. The provided CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:N) confirms the flaw is remotely triggerable with low complexity, no attack requirements, no privileges (PR:N = unauthenticated) and no user interaction, with impact limited to availability (VA:H; VC:N/VI:N). Symfony's own analysis confirms HeaderBag parses the Cache-Control header via HeaderUtils::split() on every Request build, so any HTTP-handling Symfony application is reachable by default with no authentication. The catastrophic-backtracking ReDoS (CWE-1333) is well-documented: a single 8 KB header with 17 spaces costs ~813 ms of CPU on PHP 8.5, doubling per added space, so a modest volume of crafted requests can saturate CPU. Note a self-limiting factor: at 18+ spaces preg_match_all() hits pcre.backtrack_limit and returns empty, capping per-request cost but then silently dropping every Cache-Control directive - a correctness side effect worth flagging. EPSS and KEV status were not provided in the input, so exploitation-probability and active-exploitation signals are unavailable; absence of KEV should not be read as low risk given how trivially the condition is met. No public exploit code was supplied, though the vendor advisory and patch describe the trigger in reproducible detail. |
| Exploit ScenarioDerived | A remote, unauthenticated attacker sends HTTP requests to any Symfony-based application carrying a crafted Cache-Control header containing a run of whitespace before a separator inside a large (~8 KB) header value. HeaderBag automatically invokes HeaderUtils::split() while building the Request, triggering exponential regex backtracking that consumes close to a second of CPU per request (17 spaces on PHP 8.5), and a stream of such requests exhausts server CPU to cause denial of service. No public exploit code was identified in the input, but the vendor advisory describes the trigger precisely enough to reproduce. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 15, 2026
Unauthenticated remote denial of service in Symfony's HttpFoundation component (v4.1.0-BETA1 up to 5.4.54, v6.0.0-BETA1 up to 6.4.46, v7.0.0-BETA1 up to 7.4.19, and v8.0.0-BETA1 up to 8.1.7) allows any attacker who can send an HTTP request to burn roughly a second of CPU per request by placing a run of whitespace before a separator in the Cache-Control header. The flaw is automatically reachable because HeaderBag invokes HeaderUtils::split() on Cache-Control every time a Request object is constructed, so no authentication, plugin, or special configuration is required; a single crafted request costs about 813 ms on PHP 8.5 (17 spaces in an 8 KB header), doubling with each additional space, so sustained denial of service requires a stream of such requests rather than one packet. There is no public exploit identified at time of analysis and the issue is not listed in CISA KEV, but vendor patches are released and the reachability is trivial, making this a practical denial-of-service risk rather than a theoretical one.
RemediationAI
Vendor-released patch: upgrade symfony/http-foundation to 5.4.54, 6.4.46, 7.4.19, or 8.1.7 (or later) on the matching maintenance branch; the fixes are in the GitHub pull requests https://github.com/symfony/symfony/pull/66048 and https://github.com/symfony/symfony/pull/66491, with details in the advisory at https://github.com/symfony/symfony/security/advisories/GHSA-r925-mgvr-h9cc. If an immediate upgrade is not possible, apply compensating controls at the perimeter rather than relying on application logic: enforce a strict maximum request header size (for example a few kilobytes) and rate-limit requests per client at the reverse proxy or load balancer to blunt the per-request CPU cost, understanding that aggressive header-size limits can break legitimate long cookies, tokens, or forwarding headers; alternatively strip or canonicalize the Cache-Control request header at the edge, with the trade-off that some clients and proxies legitimately send Cache-Control directives such as no-cache or no-store that will then be ignored. Note that PCRE's default pcre.backtrack_limit already truncates the attack at 18 or more spaces and returns an empty directive array, effectively capping per-request CPU at roughly a second but also silently dropping all Cache-Control directives; lowering pcre.backtrack_limit globally is not recommended because it degrades other regular expressions application-wide. No vendor-released workaround in application code is identified beyond upgrading.
Affected VersionsENISA
Affects your stack
Find out whether the stacks and servers you run are on an affected version.
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The root cause is CWE-1333 (Inefficient Regular Expression Complexity), a classic catastrophic-backtracking ReDoS inside HeaderUtils::split(), the helper Symfony uses to tokenize HTTP header values such as Cache-Control, Content-Disposition, and Accept. The pre-patch pattern combined a token alternative that itself matched whitespace with a trailing negative lookbehind (?<!\s), so a run of whitespace immediately preceding a separator could be attributed to the token branch or to the surrounding repetition in exponentially many ways; PCRE enumerated every possible split before failing to match, producing super-linear CPU consumption. The upstream fix (visible in PR 66048) splits the token class so whitespace is excluded from it ("[^\"\s' . $quotedSeparators . ']++") and handles whitespace in a dedicated possessive branch (\s++(?!separators|$)), eliminating the ambiguity and the need to give characters back. Because HeaderBag constructs the parsed Cache-Control value whenever a Symfony Request is built, the vulnerable code path sits in the request bootstrap of essentially every Symfony HTTP application, and the CPU cost scales with both the whitespace run length and the total header size; PCRE's pcre.backtrack_limit acts as an accidental ceiling - at 18 or more spaces preg_match_all() abandons the match and split() returns an empty array, which both caps the per-request cost and silently discards all directives in the header, so behavior and caching semantics can be disrupted as a side effect of the same input.
Know when Symfony gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
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
Remotely reachable by default with no auth or interaction (AV:N/AC:L/PR:N/UI:N); impact is CPU-exhaustion denial of service only, so C:N/I:N/A:H with no scope change.
Primary rating from Vendor (Checkmarx).
CVSS VectorVendor: Checkmarx
DescriptionCVE.org
Symfony is a PHP framework for web and console applications and a set of reusable PHP components. Prior to versions 5.4.54, 6.4.46, 7.4.19, and 8.1.7, HeaderUtils::split() parsed header values with a pattern whose token alternative also matched whitespace, followed by a (?<!\s) lookbehind. A run of whitespace placed before a separator could be divided among the iterations of the enclosing repetition in exponentially many ways, and the engine tried all of them before settling. HeaderBag calls it for the Cache-Control header whenever a Request is built, so any application handling HTTP requests is reachable, with no authentication.
A single request carrying such a header costs close to a second of CPU (813 ms for a run of 17 spaces in an 8 KB header on PHP 8.5, doubling with each extra space). From 18 spaces on, preg_match_all() gives up at pcre.backtrack_limit and split() returns an empty array, so every directive of the header is silently dropped.
This issue affects symfony/http-foundation v4.1.0-BETA1 prior to v5.4.54, v6.0.0-BETA1 prior to v6.4.46, v7.0.0-BETA1 prior to v7.4.19, and v8.0.0-BETA1 prior to v8.1.7.
Technical POC Analysis
CWE-1333 (Inefficient Regular Expression Complexity).
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
Symfony's HttpFoundation component, a widely used PHP library, is affected by a high-severity denial-of-service vulnerability (CVE-2026-108082) that can exhaust server CPU resources and disrupt availability for organizations running affected versions. No public exploit identified at time of analysis, but the vulnerability can be triggered through standard HTTP requests without special conditions, making it a practical risk for internet-facing applications. Leadership should prioritize patching to prevent service outages and maintain customer trust.
Apply vendor patch.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.
FragmentListener in the HttpKernel component in Symfony 2.3.19 through 2.3.28, 2.4.9 through 2.4.10, 2.5.4 through 2.5.1
In Symfony before 2.7.51, 2.8.x before 2.8.50, 3.x before 3.4.26, 4.x before 4.1.12, and 4.2.x before 4.2.7, when servic
Twig before 2.4.4 allows Server-Side Template Injection (SSTI) via the search search_key parameter. Rated critical sever
Insufficient verification of payment-claim state in the Sylius e-commerce platform (versions before 2.1.16 and 2.2.9) le
Incorrect authorization in the Sylius Shop API lets anyone holding an order token submit arbitrary payment actions - mos
Symfony is a PHP framework for web and console applications and a set of reusable PHP components. Rated high severity (C
Symfony versions up to 5.4.51 contains a vulnerability that allows attackers to operations being performed on an uninten
Reflected Cross-site scripting (XSS) vulnerability in the web profiler in SensioLabs Symfony 3.3.6 allows remote attacke
Symfony before 2.8.6 and 3.x before 3.0.6 allows remote attackers to bypass authentication by logging in with an empty p
Symphony process is a module for the Symphony PHP framework which executes commands in sub-processes. Rated critical sev
An issue was discovered in Symfony 3.4.0 through 3.4.34, 4.2.0 through 4.2.11, and 4.3.0 through 4.3.7. Rated critical s
An issue was discovered in Symfony before 4.2.12 and 4.3.x before 4.3.8. Rated critical severity (CVSS 9.8), this vulner
EUVD-2026-102102
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB