{ "dataType": "CVE_RECORD", "dataVersion": "5.2", "cveMetadata": { "cveId": "CVE-2026-112362", "assignerOrgId": "ce714d77-add3-4f53-aff5-83d477b104bb", "state": "PUBLISHED", "assignerShortName": "openjs", "dateReserved": "2026-10-19T14:59:03.468Z", "datePublished": "2026-10-27T11:27:59.364Z", "dateUpdated": "2026-10-27T11:27:59.364Z" }, "containers": { "cna": { "providerMetadata": { "orgId": "ce714d77-add3-4f53-aff5-83d477b104bb", "shortName": "openjs", "dateUpdated": "2026-10-27T11:27:59.364Z" }, "descriptions": [ { "lang": "en", "value": "@fastify/express is a Fastify plugin that runs Express middleware inside Fastify. In versions 4.0.5 through 4.0.8, when Fastify runs with the non-default ignoreDuplicateSlashes option enabled, the plugin matches path-scoped Express middleware against a URL whose duplicate-slash normalization has also collapsed the separator after an absolute-form request target's scheme, so Fastify's router resolves the request to the scoped path and runs the handler while the Express layer no longer sees that path. As a result, a request using an absolute-form target can reach a handler on a scoped route such as an admin path while the middleware for authentication, authorization, or rate limiting is skipped. An unauthenticated attacker needs only the non-default ignoreDuplicateSlashes option to be enabled. The issue is fixed in @fastify/express 4.0.9, and users should upgrade to 4.0.9 or later. As a workaround, enforce authentication in a Fastify hook such as preHandler that runs after the router resolves the request, or leave ignoreDuplicateSlashes at its default.", "supportingMedia": [ { "type": "text/html", "base64": false, "value": "@fastify/express is a Fastify plugin that runs Express middleware inside Fastify. In versions 4.0.5 through 4.0.8, when Fastify runs with the non-default ignoreDuplicateSlashes option enabled, the plugin matches path-scoped Express middleware against a URL whose duplicate-slash normalization has also collapsed the separator after an absolute-form request target's scheme, so Fastify's router resolves the request to the scoped path and runs the handler while the Express layer no longer sees that path. As a result, a request using an absolute-form target can reach a handler on a scoped route such as an admin path while the middleware for authentication, authorization, or rate limiting is skipped. An unauthenticated attacker needs only the non-default ignoreDuplicateSlashes option to be enabled. The issue is fixed in @fastify/express 4.0.9, and users should upgrade to 4.0.9 or later. As a workaround, enforce authentication in a Fastify hook such as preHandler that runs after the router resolves the request, or leave ignoreDuplicateSlashes at its default." } ] } ], "affected": [ { "vendor": "@fastify/express", "product": "@fastify/express", "defaultStatus": "unaffected", "versions": [ { "versionType": "semver", "status": "affected", "version": "4.0.5", "lessThan": "4.0.9" }, { "versionType": "semver", "status": "unaffected", "version": "4.0.9" } ], "packageURL": "pkg:npm/@fastify/express" } ], "references": [ { "url": "https://github.com/fastify/fastify-express/security/advisories/GHSA-6h42-57hq-9746" }, { "url": "https://cna.openjsf.org/security-advisories.html" } ], "credits": [ { "lang": "en", "type": "reporter", "value": "agent-killjoy" }, { "lang": "en", "type": "remediation developer", "value": "mcollina" }, { "lang": "en", "type": "remediation reviewer", "value": "UlisesGascon" } ], "title": "@fastify/express vulnerable to path-scoped middleware bypass via absolute-form request targets", "metrics": [ { "format": "CVSS", "cvssV3_1": { "version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N", "baseScore": 9.1, "baseSeverity": "CRITICAL" }, "scenarios": [ { "lang": "en", "value": "GENERAL" } ] } ], "problemTypes": [ { "descriptions": [ { "cweId": "CWE-436", "lang": "en", "description": "CWE-436: Interpretation Conflict", "type": "CWE" } ] } ], "x_generator": { "engine": "cve-kit 1.0.0" } } } }