CVE-2026-33732: srvx is vulnerable to middleware bypass via absolute URI in request line
Summary
A pathname parsing discrepancy in srvx's FastURL allows middleware bypass on the Node.js adapter when a raw HTTP request uses an absolute URI with a non-standard scheme (e.g. file://).
Details
When Node.js receives an absolute URI in the request line (e.g. GET file://hehe?/internal/run HTTP/1.1), req.url is set verbatim to file://hehe?/internal/run. Since this doesn't start with /, NodeRequestURL passes it directly to FastURL as a string, which stores it in #href for lazy manual parsing.
FastURL#getPos() locates the pathname by finding :// then scanning for the next / — but this fails for URLs like file://hehe?/internal/run where a ? appears before the first / after the authority. The manual parser extracts pathname as /internal/run, while native URL correctly parses it as pathname / with search ?/internal/run.
This discrepancy means the router (using the fast-path) matches /internal/run, but if any middleware triggers a deopt to native URL (e.g. by accessing hostname), subsequent middleware sees a different pathname — bypassing route-based middleware guards.
This is a bypass of CVE-2026-33131.
Impact
Route-based middleware (auth guards, rate limiters, etc.) can be bypassed on the Node.js adapter when a prior middleware triggers FastURL deopt. Requires sending a raw HTTP request (not possible from browsers).
Fix
srvx FastURL constructor now deopts to native URL for any string not starting with /, ensuring consistent pathname resolution.
Other sources
srvx is a universal server based on web standards. Prior to version 0.11.13, a pathname parsing discrepancy in srvx's FastURL allows middleware bypass on the Node.js adapter when a raw HTTP request uses an absolute URI with a non-standard scheme (e.g. file://). Starting in version 0.11.13, the FastURL constructor now deopts to native URL for any string not starting with /, ensuring consistent pathname resolution.
— MITRE
Affected Software
Remediation
Event History
Frequently Asked Questions
What is the severity of CVE-2026-33732?
CVE-2026-33732 has not been assigned a specific CVSS score but poses a risk through potential middleware bypass.
How do I fix CVE-2026-33732?
To fix CVE-2026-33732, upgrade your srvx package to version 0.11.13 or later.
What versions of srvx are affected by CVE-2026-33732?
Versions of srvx prior to 0.11.13 are affected by CVE-2026-33732.
What kind of attack does CVE-2026-33732 enable?
CVE-2026-33732 enables a middleware bypass attack when processing raw HTTP requests with non-standard schemes.
Is CVE-2026-33732 specific to Node.js applications?
Yes, CVE-2026-33732 specifically affects Node.js applications using the srvx package.