Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessIdentify service behind Fastify proxy
-
DeliveryEncode a prefix character in request
-
ExploitRoute matches but rewrite skipped
-
ExecutionEncoded path forwarded to upstream
-
PersistUpstream decodes and serves hidden endpoint
-
ImpactAccess internal/admin data or actions
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V2 - Validation and Business Logic Input validation, allowlisting
|
| Exploitation Conditions | Exploitation requires that the target application uses @fastify/http-proxy (<= 11.5.0) configured with a prefix and rewritePrefix where that rewrite is relied upon to hide or remap upstream paths, and that the upstream service decodes and serves the forwarded encoded path. The concrete trigger is a request that URL-encodes one or more characters of the configured prefix segment, which matches Fastify's decoded route but bypasses the literal-string rewrite. Limiting factors: the value of the attack depends on what sensitive endpoints exist on the upstream behind the hidden prefix - if the upstream independently authenticates those endpoints, the bypass yields reachability but not necessarily data or actions. No user interaction, no authentication, and no non-default plugin configuration beyond ordinary prefix/rewritePrefix usage are needed, making default proxy-hiding deployments remotely exploitable. |
| Impact | All available signals point to genuinely high real-world severity, with one nuance about what the impact actually is. The CVSS 3.1 vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:N yields the maximum 10.0, driven by remote, low-complexity, unauthenticated exploitation and a scope change reflecting that the proxy is abused to compromise a separate upstream security authority. However, EPSS and CISA KEV data were not provided in the input, so exploitation probability and active-exploitation status are unknown, and no public exploit was identified at time of analysis - meaning the 10.0 reflects intrinsic exploitability and blast radius, not observed exploitation. There is a modeling tension worth flagging: the advisory tags this as Information Disclosure and the described mechanism is fundamentally an access-control/path bypass, so the confidentiality impact (C:H) is well-supported, while the base score's integrity impact (I:H) is conditional on which upstream endpoints become reachable - it is fully justified only when the exposed internal/administrative endpoints themselves permit state-changing operations. No SSVC decision data was supplied. Net assessment: a real priority for any deployment that relies on rewritePrefix as a security boundary in front of sensitive upstreams, but teams whose upstream endpoints are read-only or independently authenticated face primarily disclosure rather than full compromise. |
| Exploit ScenarioDerived | An attacker who knows or guesses that an internal service sits behind the proxy sends a normal-looking HTTP request in which one character of the hidden prefix is percent-encoded (for example encoding a letter of /admin). The request matches the proxy route but skips the rewrite, so the encoded path is forwarded verbatim; the upstream decodes it and serves the administrative or internal endpoint the proxy was meant to hide. No authentication or user interaction is required (AV:N/AC:L/PR:N/UI:N), and no public exploit is needed since the technique is a simple encoding trick. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jul 18, 2026
Proxy prefix-rewrite bypass in @fastify/http-proxy (versions up to and including 11.5.0) lets remote unauthenticated attackers reach upstream endpoints the proxy was configured to hide. Because Fastify's router URL-decodes paths for route matching while the rewrite step performs a literal string replace against the decoded prefix, a request that URL-encodes any character of the configured prefix still matches the route but skips the rewrite, forwarding the raw encoded path to the upstream, which decodes and serves it. There is no public exploit identified at time of analysis, but the CVSS 3.1 base score is 10.0 (scope-changed) and the OpenJS/GHSA advisory characterizes it as an information-disclosure access-control bypass.
RemediationAI
Vendor-released patch: upgrade @fastify/http-proxy to 11.6.0 or later, which corrects the prefix-rewrite logic so encoded prefixes are handled consistently; this is the primary and recommended fix. The advisory states there are no official workarounds, so if immediate upgrade is impossible, apply compensating controls with awareness of their trade-offs: place a normalizing reverse proxy or WAF in front of the Fastify service that URL-decodes and canonicalizes the path before it reaches the plugin, or reject requests whose path contains percent-encoded characters in the prefix segment (this can break legitimate clients that legitimately encode reserved characters); alternatively, stop relying on rewritePrefix as a security boundary and enforce authentication and authorization directly on the upstream's internal and administrative endpoints so that reaching them via a bypassed path still fails (most robust but requires upstream changes). Track fixes via https://github.com/fastify/fastify-http-proxy/security/advisories/GHSA-mx7v-qhg9-2mvv.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The affected component is @fastify/http-proxy, a Fastify plugin that reverse-proxies incoming requests to an upstream, typically using the prefix/rewritePrefix options to expose an internal service under a public path while stripping or rewriting that path segment before forwarding. The root cause is CWE-20 (Improper Input Validation): two different representations of the request path are used inconsistently. Fastify's router normalizes and URL-decodes the incoming path for route matching, so an encoded prefix such as /admi%6e still matches the configured route, but request.url retains the original percent-encoded form. The plugin's prefix-rewrite logic uses a plain literal string replacement against the decoded prefix value; when the incoming URL is encoded it does not textually match, the replacement silently no-ops, and the untouched encoded path is forwarded upstream. The upstream server then performs its own URL-decoding and serves the fully-decoded path, defeating the segment-hiding that rewritePrefix was intended to enforce. The CPE cpe:2.3:a:@fastify/http-proxy:@fastify/http-proxy:*:*:* identifies the plugin itself as the affected product across all versions prior to the fix.
Know when Fastify Http Proxy gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:N
Remote unauthenticated encoding trick (AV:N/AC:L/PR:N/UI:N) bypasses the proxy to a separate upstream (S:C); confidentiality High via exposed endpoints, integrity only Low since state change depends on which upstream endpoints are reachable.
Primary rating from Vendor (openjs).
CVSS VectorVendor: openjs
Lifecycle Timeline
2DescriptionCVE.org
Impact: @fastify/http-proxy versions up to and including 11.5.0 fail to rewrite the request prefix when the prefix segment is URL-encoded. Fastify's router URL-decodes paths for route matching, but request.url retains the original encoded form, and the prefix-rewrite step uses a literal string replace against the decoded prefix. A request that encodes one or more characters of the configured prefix therefore matches the route but skips the rewrite, so the raw encoded path is forwarded to the upstream unchanged. The upstream then decodes the path and serves it, letting an attacker reach upstream paths that the proxy was configured to hide via rewritePrefix, including internal or administrative endpoints.
Patches: upgrade to @fastify/http-proxy 11.6.0.
Workarounds: none.
Executive ViewAI
@fastify/http-proxy versions ≤11.5.0 contain a critical access-control bypass that allows unauthenticated attackers to directly access backend services the organization intentionally hid behind the proxy. Affected organizations face immediate risk of unauthorized data access and service compromise with no vendor patch currently available.
No vendor-released patch identified at time of analysis. Implement network segmentation to restrict upstream endpoint access to only authorized internal services; deploy WAF rules blocking requests with URL-encoded prefix patterns; enable detailed proxy traffic logging and alerting; add rate limiting on proxy endpoints; consider temporary deprecation of affected proxy instances until patched versions are available.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
More in Fastify Http Proxy
View allWe are tasked with synthesizing data from multiple sources about CVE-2026-15631 into a comprehensive JSON analysis. The
fastify-http-proxy is an npm package which is a fastify plugin for proxying your http requests to another server, with h
Path-restriction bypass in @fastify/http-proxy 9.0.0 through 11.6.5 lets unauthenticated remote attackers escape an inte
HTTP header smuggling in @fastify/reply-from ≤12.6.1 and @fastify/http-proxy ≤11.4.3 allows remote unauthenticated attac
Path traversal in @fastify/http-proxy before 11.6.2 permits unauthenticated remote attackers to bypass the prefix and re
@fastify/http-proxy 11.6.0 through 11.6.2 lets an unauthenticated remote attacker reach upstream resources outside the i
EUVD-2026-45379
NVD
CVE.org
EPSS
GitHub
VulDB
Exploit-DB