153 lines
8.2 KiB
JSON
153 lines
8.2 KiB
JSON
{
|
|
"dataType": "CVE_RECORD",
|
|
"dataVersion": "5.2",
|
|
"cveMetadata": {
|
|
"cveId": "CVE-2026-16732",
|
|
"assignerOrgId": "ce714d77-add3-4f53-aff5-83d477b104bb",
|
|
"state": "PUBLISHED",
|
|
"assignerShortName": "openjs",
|
|
"dateReserved": "2026-07-23T07:30:53.415Z",
|
|
"datePublished": "2026-08-18T20:30:22.592Z",
|
|
"dateUpdated": "2026-08-19T13:16:06.497Z"
|
|
},
|
|
"containers": {
|
|
"cna": {
|
|
"providerMetadata": {
|
|
"orgId": "ce714d77-add3-4f53-aff5-83d477b104bb",
|
|
"shortName": "openjs",
|
|
"dateUpdated": "2026-08-18T20:30:22.592Z"
|
|
},
|
|
"descriptions": [
|
|
{
|
|
"lang": "en",
|
|
"value": "fastify is a fast and low overhead web framework for Node.js. Impact: the fix for CVE-2026-3635 added a guard on the forwarded-header reads used to derive the request host, protocol, hostname, ip, and ips values, checking the connecting address. That guard closes the IP, CIDR, and custom-function forms of trustProxy correctly, because those forms compile to predicates that inspect the connecting address. The hop-count form, where trustProxy is set to a number, compiles to a predicate that structurally ignores the address, so the guard is always satisfied for any hop count of one or more. Applications configured with a numeric trustProxy value, such as trustProxy set to 1 for a single reverse proxy, remain vulnerable: an attacker who can reach the Fastify origin directly, bypassing the front-facing proxy, can spoof the forwarded request fields exactly as in the unpatched version. The impact class matches the parent CVE-2026-3635, including host injection in generated URLs, HTTPS-enforcement bypass, secure-cookie and CSRF-origin bypass, and host-based routing and cache poisoning. Affected versions are fastify from 5.8.3 up to but not including 5.12.1. Patches: patched in fastify 5.12.1, where the numeric form of trustProxy is disabled at runtime and removed from the TypeScript type union. Workarounds: migrate to an IP, CIDR, or custom-function trustProxy value that validates the connecting address, and ensure the Fastify origin is only reachable through the trusted proxy chain.",
|
|
"supportingMedia": [
|
|
{
|
|
"type": "text/html",
|
|
"base64": false,
|
|
"value": "fastify is a fast and low overhead web framework for Node.js. Impact: the fix for CVE-2026-3635 added a guard on the forwarded-header reads used to derive the request host, protocol, hostname, ip, and ips values, checking the connecting address. That guard closes the IP, CIDR, and custom-function forms of trustProxy correctly, because those forms compile to predicates that inspect the connecting address. The hop-count form, where trustProxy is set to a number, compiles to a predicate that structurally ignores the address, so the guard is always satisfied for any hop count of one or more. Applications configured with a numeric trustProxy value, such as trustProxy set to 1 for a single reverse proxy, remain vulnerable: an attacker who can reach the Fastify origin directly, bypassing the front-facing proxy, can spoof the forwarded request fields exactly as in the unpatched version. The impact class matches the parent CVE-2026-3635, including host injection in generated URLs, HTTPS-enforcement bypass, secure-cookie and CSRF-origin bypass, and host-based routing and cache poisoning. Affected versions are fastify from 5.8.3 up to but not including 5.12.1. Patches: patched in fastify 5.12.1, where the numeric form of trustProxy is disabled at runtime and removed from the TypeScript type union. Workarounds: migrate to an IP, CIDR, or custom-function trustProxy value that validates the connecting address, and ensure the Fastify origin is only reachable through the trusted proxy chain."
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"affected": [
|
|
{
|
|
"vendor": "fastify",
|
|
"product": "fastify",
|
|
"defaultStatus": "unaffected",
|
|
"versions": [
|
|
{
|
|
"versionType": "semver",
|
|
"status": "affected",
|
|
"version": "5.8.3",
|
|
"lessThan": "5.12.1"
|
|
},
|
|
{
|
|
"versionType": "semver",
|
|
"status": "unaffected",
|
|
"version": "5.12.1"
|
|
}
|
|
],
|
|
"packageURL": "pkg:npm/fastify"
|
|
}
|
|
],
|
|
"references": [
|
|
{
|
|
"url": "https://github.com/fastify/fastify/security/advisories/GHSA-3m5p-2c4r-xxw2"
|
|
},
|
|
{
|
|
"url": "https://cna.openjsf.org/security-advisories.html"
|
|
}
|
|
],
|
|
"credits": [
|
|
{
|
|
"lang": "en",
|
|
"type": "reporter",
|
|
"value": "alimony"
|
|
},
|
|
{
|
|
"lang": "en",
|
|
"type": "remediation developer",
|
|
"value": "mcollina"
|
|
},
|
|
{
|
|
"lang": "en",
|
|
"type": "remediation reviewer",
|
|
"value": "climba03003"
|
|
},
|
|
{
|
|
"lang": "en",
|
|
"type": "remediation reviewer",
|
|
"value": "UlisesGascon"
|
|
}
|
|
],
|
|
"title": "fastify vulnerable to X-Forwarded-* spoofing under trustProxy hop-count",
|
|
"metrics": [
|
|
{
|
|
"format": "CVSS",
|
|
"cvssV3_1": {
|
|
"version": "3.1",
|
|
"vectorString": "CVSS:3.1/AV:A/AC:H/PR:N/UI:N/S:C/C:H/I:N/A:N",
|
|
"baseScore": 6.1,
|
|
"baseSeverity": "MEDIUM"
|
|
},
|
|
"scenarios": [
|
|
{
|
|
"lang": "en",
|
|
"value": "GENERAL"
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"problemTypes": [
|
|
{
|
|
"descriptions": [
|
|
{
|
|
"cweId": "CWE-348",
|
|
"lang": "en",
|
|
"description": "CWE-348: Use of Less Trusted Source",
|
|
"type": "CWE"
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"x_generator": {
|
|
"engine": "cve-kit 1.0.0"
|
|
}
|
|
},
|
|
"adp": [
|
|
{
|
|
"metrics": [
|
|
{
|
|
"other": {
|
|
"type": "ssvc",
|
|
"content": {
|
|
"timestamp": "2026-08-19T13:15:46.091425Z",
|
|
"id": "CVE-2026-16732",
|
|
"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-08-19T13:16:06.497Z"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
} |