FR
live
High CVSS 8.7

CVE-2026-15631

NVD analysis in progress

Impact: @fastify/http-proxy versions from 9.4.0 up to and including 11.5.0 fail to validate the resolved WebSocket destination path against the configured rewrite prefix. The WebSocket routing path in WebSocketProxy.findUpstream resolves the destination via the WHATWG URL constructor, which collapses dot segments, so a crafted upgrade request with path traversal sequences can escape the rewrite prefix and reach upstream endpoints that were not meant to be exposed by the proxy. This is a variant of CVE-2021-21322 in a code path that never went through the HTTP fix in fastify/reply-from. Exploitation requires a non-normalizing WebSocket client, since browsers and the ws package normalize the request path before sending, but raw HTTP clients or downstream proxies that forward the request target unchanged make the attack reachable in production topologies. Patches: upgrade to @fastify/http-proxy 11.6.0. Workarounds: none.

What this means

Exposure
Exploitable remotely over the network, without authentication and with no action from the victim. The attack does require particular conditions, which makes it less systematic.
Impact
An attacker can read sensitive data and modify or destroy data. The impact spreads beyond the vulnerable component into other parts of the system.
Weakness
An attacker-supplied file path is not confined, letting them read or write outside the intended folder.
Likelihood
Its EPSS score stays low: nothing points to imminent exploitation, which is no reason to leave it unpatched.

What to doFold into the next patch cycle. Start with the instances exposed to the internet.

Read automatically from the CVSS vector, the weakness type (CWE) and the EPSS score. The technical description above remains the one published by NIST.

Published
18 July 2026
CVSS
8.7 (v3.1) CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:H/A:N
EPSS
0.3% probability of exploitation within 30 days · above 22% of all CVEs
Weakness
CWE-22
Sources
nvd
References

Type at least two characters.

navigate open esc dismiss