{
"dataType": "CVE_RECORD",
"dataVersion": "5.2",
"cveMetadata": {
"cveId": "CVE-2026-108082",
"assignerOrgId": "596c5446-0ce5-4ba2-aa66-48b3b757a647",
"state": "PUBLISHED",
"assignerShortName": "Checkmarx",
"dateReserved": "2026-10-09T12:09:17.141Z",
"datePublished": "2026-10-15T14:46:01.594Z",
"dateUpdated": "2026-10-15T18:04:45.913Z"
},
"containers": {
"cna": {
"providerMetadata": {
"orgId": "596c5446-0ce5-4ba2-aa66-48b3b757a647",
"shortName": "Checkmarx",
"dateUpdated": "2026-10-15T15:32:05.788Z"
},
"title": "Symfony: ReDoS in HeaderUtils::split() Reachable Through the Cache-Control Request Header",
"datePublic": "2026-09-14T11:59:00.000Z",
"problemTypes": [
{
"descriptions": [
{
"lang": "en",
"cweId": "CWE-1333",
"description": "CWE-1333 Inefficient regular expression complexity",
"type": "CWE"
}
]
}
],
"affected": [
{
"vendor": "sensiolabs",
"product": "symfony",
"collectionURL": "https://packagist.org/packages/symfony/http-foundation",
"packageName": "symfony/http-foundation",
"repo": "https://github.com/symfony/http-foundation",
"modules": [
"Symfony\\Component\\HttpFoundation\\HeaderUtils::split()"
],
"versions": [
{
"status": "affected",
"version": "v4.1.0-BETA1",
"lessThan": "v5.4.54",
"versionType": "git"
},
{
"status": "affected",
"version": "v6.0.0-BETA1",
"lessThan": "v6.4.46",
"versionType": "git"
},
{
"status": "affected",
"version": "v7.0.0-BETA1",
"lessThan": "v7.4.19",
"versionType": "git"
},
{
"status": "affected",
"version": "v8.0.0-BETA1",
"lessThan": "v8.1.7",
"versionType": "git"
}
],
"defaultStatus": "unaffected"
}
],
"cpeApplicability": [
{
"operator": "OR",
"nodes": [
{
"operator": "OR",
"negate": false,
"cpeMatch": [
{
"vulnerable": true,
"criteria": "cpe:2.3:a:sensiolabs:symfony:*:*:*:*:*:*:*:*",
"versionStartIncluding": "v4.1.0-beta1",
"versionEndExcluding": "v5.4.54"
},
{
"vulnerable": true,
"criteria": "cpe:2.3:a:sensiolabs:symfony:*:*:*:*:*:*:*:*",
"versionStartIncluding": "v6.0.0-beta1",
"versionEndExcluding": "v6.4.46"
},
{
"vulnerable": true,
"criteria": "cpe:2.3:a:sensiolabs:symfony:*:*:*:*:*:*:*:*",
"versionStartIncluding": "v7.0.0-beta1",
"versionEndExcluding": "v7.4.19"
},
{
"vulnerable": true,
"criteria": "cpe:2.3:a:sensiolabs:symfony:*:*:*:*:*:*:*:*",
"versionStartIncluding": "v8.0.0-beta1",
"versionEndExcluding": "v8.1.7"
}
]
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "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 (?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 through v5.4.53, v6.0.0-BETA1 through v6.4.45, v7.0.0-BETA1 through v7.4.18, and v8.0.0-BETA1 through v8.1.6.