Skip to main content

@fastify/http-proxy EUVDEUVD-2026-115115

| CVE-2026-120214 MEDIUM
Path Traversal (CWE-22)
2026-11-02 openjs
5.9
CVSS 3.1 · Vendor: openjs
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Identify public proxy with prefix isolation
  2. Delivery
    Craft GET /pub/%5C..%5Csecret with encoded backslash dot-segments
  3. Exploit
    Bypass validateDestination via pre-decode normalization gap
  4. Execution
    Upstream decodes %5C as path separator
  5. Impact
    Retrieve 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.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

@fastify/http-proxy 11.6.0 <11.6.3

Affected Packages

euvd fastify_http_proxy fix: 11.6.3

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

Vendor (openjs) PRIMARY 5.9 MEDIUM
AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N
vuln.today AI 5.9 MEDIUM

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).

3.1 AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N
4.0 AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (openjs).

CVSS VectorVendor: openjs

Attack Vector
Network
Attack Complexity
High
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
None
Availability
None

Lifecycle Timeline

1
Patch available
Nov 02, 2026 - 11:01 EUVD

DescriptionCVE.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

Prevalence
Medium
common Fastify ecosystem npm plugin, not deployed in every environment
Social Media
2
Sightings
Data Quality
4 sources
Confidence: Medium

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.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS N/A
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact· derived
Medium

Priority Score

30
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +30
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Path traversal exploits occur when applications use user-controlled input to construct file system paths without proper validation.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy