{ "dataType": "CVE_RECORD", "dataVersion": "5.2", "cveMetadata": { "cveId": "CVE-2026-16158", "assignerOrgId": "ce714d77-add3-4f53-aff5-83d477b104bb", "state": "PUBLISHED", "assignerShortName": "openjs", "dateReserved": "2026-07-17T21:22:28.153Z", "datePublished": "2026-07-18T12:28:17.262Z", "dateUpdated": "2026-07-20T15:15:50.016Z" }, "containers": { "cna": { "providerMetadata": { "orgId": "ce714d77-add3-4f53-aff5-83d477b104bb", "shortName": "openjs", "dateUpdated": "2026-07-18T12:28:17.262Z" }, "descriptions": [ { "lang": "en", "value": "Impact: @fastify/reply-from versions from 8.3.1 up to but not including 12.6.4 build the internal URL cache key by concatenating the destination and source path without a delimiter. Different destination and source pairs can therefore produce the same key while resolving to different upstream URLs. When getUpstream selects an upstream from request data, a URL cached for one upstream can be reused for a request intended for another upstream, causing cross-upstream data access and modification. The default configuration is affected. Setting disableCache to true prevents the behavior. Patches: upgrade to @fastify/reply-from 12.6.4. Workarounds: pass disableCache: true when registering the plugin.", "supportingMedia": [ { "type": "text/html", "base64": false, "value": "Impact: @fastify/reply-from versions from 8.3.1 up to but not including 12.6.4 build the internal URL cache key by concatenating the destination and source path without a delimiter. Different destination and source pairs can therefore produce the same key while resolving to different upstream URLs. When getUpstream selects an upstream from request data, a URL cached for one upstream can be reused for a request intended for another upstream, causing cross-upstream data access and modification. The default configuration is affected. Setting disableCache to true prevents the behavior. Patches: upgrade to @fastify/reply-from 12.6.4. Workarounds: pass disableCache: true when registering the plugin." } ] } ], "affected": [ { "vendor": "@fastify/reply-from", "product": "@fastify/reply-from", "defaultStatus": "unaffected", "versions": [ { "versionType": "semver", "status": "affected", "version": "8.3.1", "lessThan": "12.6.4" }, { "versionType": "semver", "status": "unaffected", "version": "12.6.4" } ], "packageURL": "pkg:npm/@fastify/reply-from" } ], "references": [ { "url": "https://github.com/fastify/fastify-reply-from/security/advisories/GHSA-v574-6498-x57v" }, { "url": "https://cna.openjsf.org/security-advisories.html" } ], "credits": [ { "lang": "en", "type": "reporter", "value": "HamdaanAliQuatil" }, { "lang": "en", "type": "remediation developer", "value": "mcollina" }, { "lang": "en", "type": "remediation reviewer", "value": "UlisesGascon" }, { "lang": "en", "type": "remediation reviewer", "value": "climba03003" } ], "title": "@fastify/reply-from vulnerable to cross-upstream request routing via URL cache key collision", "metrics": [ { "format": "CVSS", "cvssV3_1": { "version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:H/A:N", "baseScore": 8.7, "baseSeverity": "HIGH" }, "scenarios": [ { "lang": "en", "value": "GENERAL" } ] } ], "problemTypes": [ { "descriptions": [ { "cweId": "CWE-441", "lang": "en", "description": "CWE-441: Unintended Proxy or Intermediary ('Confused Deputy')", "type": "CWE" } ] } ], "x_generator": { "engine": "cve-kit 1.0.0" } }, "adp": [ { "metrics": [ { "other": { "type": "ssvc", "content": { "timestamp": "2026-07-20T15:15:40.003591Z", "id": "CVE-2026-16158", "options": [ { "Exploitation": "none" }, { "Automatable": "no" }, { "Technical Impact": "total" } ], "role": "CISA Coordinator", "version": "2.0.3" } } } ], "title": "CISA ADP Vulnrichment", "providerMetadata": { "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "shortName": "CISA-ADP", "dateUpdated": "2026-07-20T15:15:50.016Z" } } ] } }