170 lines
8.4 KiB
JSON
170 lines
8.4 KiB
JSON
{
|
|
"dataType": "CVE_RECORD",
|
|
"dataVersion": "5.2",
|
|
"cveMetadata": {
|
|
"cveId": "CVE-2026-18540",
|
|
"assignerOrgId": "ce714d77-add3-4f53-aff5-83d477b104bb",
|
|
"state": "PUBLISHED",
|
|
"assignerShortName": "openjs",
|
|
"dateReserved": "2026-07-31T20:47:28.965Z",
|
|
"datePublished": "2026-09-04T17:15:50.619Z",
|
|
"dateUpdated": "2026-09-04T17:50:13.682Z"
|
|
},
|
|
"containers": {
|
|
"cna": {
|
|
"providerMetadata": {
|
|
"orgId": "ce714d77-add3-4f53-aff5-83d477b104bb",
|
|
"shortName": "openjs",
|
|
"dateUpdated": "2026-09-04T17:15:50.619Z"
|
|
},
|
|
"descriptions": [
|
|
{
|
|
"lang": "en",
|
|
"value": "undici's retry interceptor can append the body of a ranged retry response to bytes already delivered from an earlier partial response while still presenting the original response's status and headers. This happens when an upstream server delivers part of a body without a trustworthy resume checkpoint, for example a non-success response whose headers were already sent or a partial-content response with an unusable content range, then closes the connection and answers the resumed range request with more bytes. As a result the response body can be longer than the Content-Length that the application observes. An application that relays such a response to a downstream HTTP/1.1 peer without normalizing the framing can emit a body that exceeds the forwarded Content-Length, and the excess bytes can be interpreted as the start of a following response, which enables downstream response splitting or desynchronization. Exploitation requires an attacker-controlled upstream server and an application that forwards the response through a framing-sensitive path. This affects undici versions before 6.28.1, from 7.0.0 up to 7.29.1, and from 8.0.0 up to 8.10.2. Users should upgrade to undici 6.28.1, 7.29.1, or 8.10.2.",
|
|
"supportingMedia": [
|
|
{
|
|
"type": "text/html",
|
|
"base64": false,
|
|
"value": "undici's retry interceptor can append the body of a ranged retry response to bytes already delivered from an earlier partial response while still presenting the original response's status and headers. This happens when an upstream server delivers part of a body without a trustworthy resume checkpoint, for example a non-success response whose headers were already sent or a partial-content response with an unusable content range, then closes the connection and answers the resumed range request with more bytes. As a result the response body can be longer than the Content-Length that the application observes. An application that relays such a response to a downstream HTTP/1.1 peer without normalizing the framing can emit a body that exceeds the forwarded Content-Length, and the excess bytes can be interpreted as the start of a following response, which enables downstream response splitting or desynchronization. Exploitation requires an attacker-controlled upstream server and an application that forwards the response through a framing-sensitive path. This affects undici versions before 6.28.1, from 7.0.0 up to 7.29.1, and from 8.0.0 up to 8.10.2. Users should upgrade to undici 6.28.1, 7.29.1, or 8.10.2."
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"affected": [
|
|
{
|
|
"vendor": "undici",
|
|
"product": "undici",
|
|
"defaultStatus": "unaffected",
|
|
"versions": [
|
|
{
|
|
"versionType": "semver",
|
|
"status": "affected",
|
|
"version": "0",
|
|
"lessThan": "6.28.1"
|
|
},
|
|
{
|
|
"versionType": "semver",
|
|
"status": "unaffected",
|
|
"version": "6.28.1"
|
|
},
|
|
{
|
|
"versionType": "semver",
|
|
"status": "affected",
|
|
"version": "7.0.0",
|
|
"lessThan": "7.29.1"
|
|
},
|
|
{
|
|
"versionType": "semver",
|
|
"status": "unaffected",
|
|
"version": "7.29.1"
|
|
},
|
|
{
|
|
"versionType": "semver",
|
|
"status": "affected",
|
|
"version": "8.0.0",
|
|
"lessThan": "8.10.2"
|
|
},
|
|
{
|
|
"versionType": "semver",
|
|
"status": "unaffected",
|
|
"version": "8.10.2"
|
|
}
|
|
],
|
|
"packageURL": "pkg:npm/undici"
|
|
}
|
|
],
|
|
"references": [
|
|
{
|
|
"url": "https://github.com/nodejs/undici/security/advisories/GHSA-r53p-7pc4-xj5r"
|
|
},
|
|
{
|
|
"url": "https://cna.openjsf.org/security-advisories.html"
|
|
}
|
|
],
|
|
"credits": [
|
|
{
|
|
"lang": "en",
|
|
"type": "reporter",
|
|
"value": "samuel871211"
|
|
},
|
|
{
|
|
"lang": "en",
|
|
"type": "remediation developer",
|
|
"value": "mcollina"
|
|
},
|
|
{
|
|
"lang": "en",
|
|
"type": "remediation reviewer",
|
|
"value": "UlisesGascon"
|
|
}
|
|
],
|
|
"title": "undici vulnerable to downstream response splitting via retry interceptor",
|
|
"metrics": [
|
|
{
|
|
"format": "CVSS",
|
|
"cvssV3_1": {
|
|
"version": "3.1",
|
|
"vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N",
|
|
"baseScore": 3.7,
|
|
"baseSeverity": "LOW"
|
|
},
|
|
"scenarios": [
|
|
{
|
|
"lang": "en",
|
|
"value": "GENERAL"
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"problemTypes": [
|
|
{
|
|
"descriptions": [
|
|
{
|
|
"cweId": "CWE-444",
|
|
"lang": "en",
|
|
"description": "CWE-444: Inconsistent Interpretation of HTTP Requests ('HTTP Request/Response Smuggling')",
|
|
"type": "CWE"
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"x_generator": {
|
|
"engine": "cve-kit 1.0.0"
|
|
}
|
|
},
|
|
"adp": [
|
|
{
|
|
"metrics": [
|
|
{
|
|
"other": {
|
|
"type": "ssvc",
|
|
"content": {
|
|
"timestamp": "2026-09-04T17:50:05.851866Z",
|
|
"id": "CVE-2026-18540",
|
|
"options": [
|
|
{
|
|
"Exploitation": "none"
|
|
},
|
|
{
|
|
"Automatable": "no"
|
|
},
|
|
{
|
|
"Technical Impact": "partial"
|
|
}
|
|
],
|
|
"role": "CISA Coordinator",
|
|
"version": "2.0.3"
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"title": "CISA ADP Vulnrichment",
|
|
"providerMetadata": {
|
|
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
|
|
"shortName": "CISA-ADP",
|
|
"dateUpdated": "2026-09-04T17:50:13.682Z"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
} |