Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessIdentify public proxy with prefix isolation
-
DeliveryCraft GET /pub/%5C..%5Csecret with encoded backslash dot-segments
-
ExploitBypass validateDestination via pre-decode normalization gap
-
ExecutionUpstream decodes %5C as path separator
-
ImpactRetrieve sibling resource outside prefix
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V5 - File Handling Path canonicalization, traversal prevention
MITRE ATT&CK
2 techniques across 2 tactics: Discovery, Collection The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires the target to run @fastify/http-proxy 11.6.0-11.6.2 configured with a prefix/rewritePrefix pair used to isolate (hide) part of an upstream's URL space behind the public proxy, AND an upstream server that percent-decodes %5C and treats the resulting backslash as a path separator (the advisory names a Windows host serving static files as the canonical case). The attacker needs no authentication and no user interaction, and crafts a request using percent-encoded backslash dot-segments (e.g. /pub/%5C..%5Csecret). The decisive limiting factor is the upstream's path handling: on an upstream that does not treat decoded backslashes as separators (typical POSIX path resolution), the forwarded request does not escape the prefix, which is why CVSS assigns AC:H. The flaw is also moot where prefix/rewritePrefix is not relied upon as a confidentiality boundary. |
| Impact | This is a genuine but conditional, moderate-priority issue rather than a drop-everything emergency, and the signals are internally consistent. The supplied CVSS:3.1 vector (AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N, base 5.9) correctly reflects a network-reachable, unauthenticated flaw with no integrity or availability impact and high attack complexity, because exploitation does not succeed against the proxy alone - it depends on the upstream server decoding %5C and treating a backslash as a path separator (per the advisory, e.g. a Windows host serving static files). The vuln.today Decision label is 'this_month', not act_now/emergency, which aligns with a confidentiality-only path-restriction bypass that is contingent on upstream behavior. No KEV listing and no EPSS score were provided, so widespread active exploitation is not indicated; absence of those signals is not evidence of safety but does not elevate urgency here. The confidentiality impact is rated C:H in the input, which is defensible when rewritePrefix is the only boundary isolating sensitive upstream paths, but real-world severity hinges entirely on (a) whether the upstream treats backslash as a separator and (b) what sibling resources sit outside the configured prefix - verify both against your actual deployment before concluding C:H applies to you. |
| Exploit ScenarioDerived | An application exposes @fastify/http-proxy publicly with prefix '/pub' and rewritePrefix '/internal' to isolate part of a Windows-based upstream's URL space. An unauthenticated remote attacker sends GET /pub/%5C..%5Csecret; the encoded backslash dot-segments pass validateDestination() and are forwarded intact, and the upstream decodes %5C, treats it as a path separator, and returns the sibling resource /secret that the prefix was meant to hide. No public working exploit code is identified at time of analysis, though the advisory documents the exact request form. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Nov 02, 2026
@fastify/http-proxy 11.6.0 through 11.6.2 lets an unauthenticated remote attacker reach upstream resources outside the intended proxy prefix by sending a path that hides its backslash dot-segments behind percent-encoding (for example /pub/%5C..%5Csecret), which the plugin's destination validator lets through and the upstream, if it decodes %5C and treats backslash as a path separator, resolves to a sibling location. Impact is confidentiality only (C:H, I:N, A:N) and highly conditional, which is why CVSS 3.1 scores it 5.9 with AC:H: the escape only happens against an upstream whose path handling treats a decoded backslash as a separator, the advisory's canonical case being a Windows host serving static files, and the flaw is moot wherever prefix/rewritePrefix is not relied on as a confidentiality boundary. There is no public exploit identified at time of analysis and no KEV listing, and the vendor-released fix is version 11.6.3; the CNA is the OpenJS Foundation and priority is this_month rather than emergency response.
RemediationAI
Upgrade @fastify/http-proxy to 11.6.3 or later - the vendor-released patch is version 11.6.3, which normalizes backslashes that appear only after percent-decoding so encoded-backslash dot-segments no longer survive validateDestination(). The advisory at https://github.com/fastify/fastify-http-proxy/security/advisories/GHSA-hr26-gmr2-pwcv explicitly states that there are no workarounds and that upgrading to the patched version is the remedy, so no alternative configuration-based mitigation is endorsed by the maintainers; the OpenJS advisory index at https://cna.openjsf.org/security-advisories.html should be consulted for the canonical version range. Prioritize upgrades in deployments that expose an upstream path space through a prefix/rewritePrefix pair where the origin percent-decodes %5C and treats backslash as a directory separator, since those are the conditions under which the confidentiality impact is reachable; audit proxy configurations to determine whether such a pair is being used as a security boundary at all, as installations that do not depend on it for isolation do not carry this exposure.
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 plugin proxies requests arriving under a configured Fastify prefix to an upstream, with rewritePrefix mapping that prefix onto a path on the upstream. Its validateDestination() routine is meant to reject dot-segments that would climb out of the rewritePrefix boundary, and it normalizes literal backslashes before percent-decoding the request path. That order is the defect: a sequence such as %5C..%5C is still opaque at the time the dot-segment check runs, so it passes validation, and only afterwards does decoding turn it into backslash and double-dot sequences that are then forwarded upstream intact. Classified CWE-22 (Improper Limitation of a Pathname to a Restricted Directory, i.e. relative path traversal), the bug is a follow-up to an earlier prefix-escape fix that handled literal backslashes but not the encoded form. Whether the traversal actually materializes is entirely a property of the upstream: resolution logic that treats a decoded backslash as a directory separator (classically Windows path handling) walks out of /internal-style rewritePrefix targets and returns a sibling resource, while typical POSIX resolution treats the backslash as an ordinary filename byte and does not escape. Because prefix/rewritePrefix pairs are often used to expose only part of an upstream's URL space, the downstream consequences range from path-restriction bypass to, depending on the proxied service, SSRF or authorization bypass - but the originating CVE impact per the assessed vector remains confidentiality-only. Authentication plays no role (PR:N) and no user interaction is needed (UI:N); the practical barrier is the upstream's path semantics, matching AC:H.
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:H/PR:N/UI:N/S:U/C:H/I:N/A:N
Remote unauthenticated request (AV:N/PR:N/UI:N); AC:H because success depends on the upstream treating decoded backslashes as separators; confidentiality-only (C:H, I:N, A:N).
Primary rating from Vendor (openjs).
CVSS VectorVendor: openjs
Lifecycle Timeline
1DescriptionCVE.org
@fastify/http-proxy is a Fastify plugin that proxies HTTP requests to an upstream server under a configured prefix. In versions 11.6.0 through 11.6.2, the destination validation normalizes literal backslashes before it percent-decodes the request path, so a path that encodes its backslashes and dot-segments survives the dot-segment check and is only turned into backslash and double-dot sequences after that check has passed. When the upstream resolves on a platform that treats a backslash as a path separator, the forwarded request walks out of the configured proxy prefix and reaches a sibling location on the upstream. An unauthenticated remote attacker can use this to retrieve upstream resources outside the intended prefix, so the impact is confidentiality only, and exploitation depends on the upstream's path handling. The issue is fixed in @fastify/http-proxy 11.6.3, and users should upgrade to 11.6.3 or later. This is a follow-up to the earlier prefix-escape fix, which did not account for the encoded-backslash form.
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
Path traversal exploits occur when applications use user-controlled input to construct file system paths without proper validation.
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
Proxy prefix-rewrite bypass in @fastify/http-proxy (versions up to and including 11.5.0) lets remote unauthenticated att
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
EUVD-2026-115115
NVD
CVE.org
GitHub
Exploit-DB