{"id":"CVE-2026-112712","title":"@fastify/middie vulnerable to path-scoped middleware bypass via scope prefix mismatch","summary":"@fastify/middie is the Express-style middleware engine for Fastify. In versions from 9.0.0 through 9.3.5, the use() function joined a path-scoped middleware's mount path to the plugin scope prefix in a way that could diverge from the pat…","severity":"critical","cvss":9.1,"cvssVector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N","cvssSource":"cna","cwe":["CWE-436"],"vendor":"@fastify/middie","product":"@fastify/middie","affected":["@fastify/middie >= 9.0.0 < 9.3.6"],"published":"2026-10-20","updated":"2026-10-20","sourceUpdated":"2026-10-20T20:43:48.681Z","source":"CVEORG","sourceUrl":"https://www.cve.org/CVERecord?id=CVE-2026-112712","references":[{"url":"https://github.com/fastify/middie/security/advisories/GHSA-5p92-8765-9fv8"},{"url":"https://cna.openjsf.org/security-advisories.html"}],"tags":["cve.org"],"ingestedAt":"2026-10-20T21:19:21.262Z","slug":"CVE-2026-112712","body":"## Overview\n\n@fastify/middie is the Express-style middleware engine for Fastify. In versions from 9.0.0 through 9.3.5, the use() function joined a path-scoped middleware's mount path to the plugin scope prefix in a way that could diverge from the path Fastify's router serves, most often when the scope prefix ended in a slash, and also for array mount paths and for mount paths written without a leading slash. When the two paths disagreed, the middleware was silently skipped while the route handler still ran, so path-scoped middleware such as authentication, authorization, or rate limiting could be bypassed by a single unauthenticated request. The issue is fixed in @fastify/middie 9.3.6, and users should upgrade to 9.3.6 or later. As a workaround, enforce authorization in a Fastify hook such as preHandler that runs after the router has resolved the request.\n\n## Affected\n\n- `@fastify/middie >= 9.0.0 < 9.3.6`\n\n## Remediation\n\nRefer to the linked advisories for vendor-supplied fixes and affected version ranges.","depth":"midnight","depthScore":50,"depthScoreParts":{"impact":50.1,"likelihood":0,"exploitation":0,"ransomware":0},"changes":[]}