Skip to main content

Symfony HttpFoundation CVE-2026-108082

| EUVDEUVD-2026-102102 HIGH
Inefficient Regular Expression Complexity (ReDoS) (CWE-1333)
2026-10-15 Checkmarx
8.7
CVSS 4.0 · Vendor: Checkmarx
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Identify internet-facing Symfony app
  2. Delivery
    Craft Cache-Control header with whitespace-before-separator in 8KB value
  3. Exploit
    Send unauthenticated HTTP requests
  4. Execution
    Trigger catastrophic regex backtracking in HeaderUtils::split()
  5. Impact
    Exhaust 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.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.4% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

symfony v4.1.0-BETA1 <v5.4.54
symfony v7.0.0-BETA1 <v7.4.19
symfony v8.0.0-BETA1 <v8.1.7
symfony v6.0.0-BETA1 <v6.4.46

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

Vendor (Checkmarx) PRIMARY 8.7 HIGH
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
vuln.today AI 7.5 HIGH

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.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (Checkmarx).

CVSS VectorVendor: Checkmarx

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
None
Vulnerable system: Availability
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

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

Why It Matters

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.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.4%
Top 71% exploitable
Prevalence
High
Symfony http-foundation is a core component in very widely deployed PHP applications
Data Quality
6 sources
Confidence: High

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.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.4%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
Yes
Human Impact
High
Technical Impact
Partial

Priority Score

44
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +44
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

CVE-2015-4050 MEDIUM POC
4.3 Jun 02

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

CVE-2019-10910 CRITICAL POC
9.8 May 16

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

CVE-2018-13818 CRITICAL POC
9.8 Jul 10

Twig before 2.4.4 allows Server-Side Template Injection (SSTI) via the search search_key parameter. Rated critical sever

CVE-2026-100872 HIGH POC
8.7 Sep 27

Insufficient verification of payment-claim state in the Sylius e-commerce platform (versions before 2.1.16 and 2.2.9) le

CVE-2026-100869 HIGH POC
8.2 Sep 27

Incorrect authorization in the Sylius Shop API lets anyone holding an order token submit arbitrary payment actions - mos

CVE-2025-64500 HIGH POC
7.3 Nov 12

Symfony is a PHP framework for web and console applications and a set of reusable PHP components. Rated high severity (C

CVE-2026-24739 MEDIUM POC
6.3 Jan 28

Symfony versions up to 5.4.51 contains a vulnerability that allows attackers to operations being performed on an uninten

CVE-2018-12040 MEDIUM POC
6.1 Jun 13

Reflected Cross-site scripting (XSS) vulnerability in the web profiler in SensioLabs Symfony 3.3.6 allows remote attacke

CVE-2016-2403 CRITICAL
9.8 Feb 07

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

CVE-2024-51736 CRITICAL
9.8 Nov 06

Symphony process is a module for the Symphony PHP framework which executes commands in sub-processes. Rated critical sev

CVE-2019-18889 CRITICAL
9.8 Nov 21

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

CVE-2019-11325 CRITICAL
9.8 Nov 21

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

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy