Skip to main content

@fastify/reply-from CVE-2026-117518

| EUVDEUVD-2026-115127 HIGH
Path Traversal (CWE-22)
2026-11-02 openjs
8.2
CVSS 3.1 · Vendor: openjs
View

Attack ChainAIDerived

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

  1. Access
    Send request with backslash dot-segments
  2. Delivery
    Bypass forward-slash-only traversal check
  3. Exploit
    URL parser normalizes backslash to slash
  4. Execution
    Escape intended upstream prefix
  5. Impact
    Read unintended upstream endpoints

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 consuming application to pass untrusted input into the proxied path AND rely on prefix scoping or Fastify route guards to constrain it - the advisory names the exact vulnerable pattern reply.from('/v1/public/' + req.params['*']). The attacker supplies backslash dot-segments (raw \..\ or percent-encoded %5c..%5c) in the user-controlled segment; this only works on the http, https, ws, and wss schemes where the WHATWG URL parser normalizes backslash to forward slash. Limiting factors: applications that do not concatenate untrusted input into the forward path, or that enforce upstream authorization independently of the proxy prefix, are not exploitable despite running an affected version. Exploitation is unauthenticated (PR:N) against the vulnerable usage pattern; there is no workaround other than upgrading to 12.8.1.

Impact

This is a genuine but conditional priority, not a blanket critical. The CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N) describes a network-reachable, low-complexity, unauthenticated flaw, which drives the 8.2 base score, with impact weighted toward confidentiality (C:H) and only limited integrity (I:L) and no availability impact - consistent with a path-traversal/prefix-escape that exposes unintended upstream resources rather than enabling code execution. The vuln.today decision label is 'this_week' rather than act_now/emergency, which aligns with the absence of CISA KEV listing and the lack of any confirmed public exploit code. No EPSS score was supplied in the input, so probabilistic exploitation likelihood cannot be quantified here. The most important caveat is that the high score assumes a vulnerable usage pattern: the real-world risk depends entirely on whether the consuming application concatenates untrusted input into the forwarded path and relies on prefix scoping or route guards (see exploitation_conditions). Applications using @fastify/reply-from without user-controlled path segments are not meaningfully exposed despite the high base score.

Exploit ScenarioDerived

An application proxies only a public subtree to an upstream using a scoped call such as reply.from('/v1/public/' + req.params['*']). An unauthenticated attacker sends a request whose wildcard segment contains backslash dot-segments (raw \..\ or percent-encoded %5c..%5c); the plugin's forward-slash-only traversal check passes, the WHATWG URL parser normalizes the backslashes to forward slashes, and the request escapes the /v1/public/ prefix to reach other upstream endpoints. No public exploit code is identified at time of analysis, though the mechanism is fully described in the GHSA advisory.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available

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

Alert me

AnalysisAIv1 – Nov 02, 2026

Unauthenticated path traversal in the Fastify plugin @fastify/reply-from (all releases up to and including 12.8.0) lets a crafted request escape a configured upstream prefix and reach other upstream endpoints. The plugin's buildURL() checked proxy paths only for forward-slash dot-segments, but the WHATWG URL parser it then used collapses backslashes and %5c into forward slashes on http, https, ws and wss, so a path containing \..\ or %5c..%5c passes the check and resolves to a different upstream path - an unauthenticated request (PR:N) can therefore slip past prefix scoping or Fastify route guards placed in front of reply.from(). Impact is primarily confidentiality (C:H) with limited integrity effect (I:L); no public exploit identified at time of analysis, and exploitation is conditional on the consuming application concatenating untrusted input into the forwarded path.

RemediationAI

Vendor-released patch: @fastify/reply-from 12.8.1 - upgrade to 12.8.1 or later, where buildURL() normalizes backslashes and rejects any path whose segments resolve to a single or double dot, along with control characters and ambiguous whitespace, before the URL is constructed. The upstream advisory states there is no workaround other than upgrading, so no configuration-level fix is offered for affected versions. In practice, exposure is limited to services that build the forward path from user-controlled input (for example reply.from('/v1/public/' + req.params['*'])) or that depend on Fastify route guards in front of reply.from(); applications that do not concatenate untrusted input into the forwarded path, or that enforce authorization at the upstream independently of the proxy prefix, are not exploitable despite running an affected version, but upgrading remains the complete fix. Details and the fixed version are documented at https://github.com/fastify/fastify-reply-from/security/advisories/GHSA-vp2r-3vgv-32g9.

Affected VersionsENISA

@fastify/reply-from 0 <12.8.1

Affected Packages

euvd fastify_reply_from fix: 12.8.1

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 flaw is CWE-22 (improper limitation of a pathname to a restricted directory) arising from a mismatch between two path-handling layers. @fastify/reply-from's buildURL() performed its traversal check using forward-slash dot-segment semantics only, then handed the composed target to the WHATWG URL parser for resolution. On the special schemes http, https, ws and wss that parser normalizes both a raw backslash and its percent-encoded form %5c to a forward slash, so a segment such as \..\ or %5c..%5c is not recognized as a dot-segment by the check but is treated as one after parsing - the traversal escapes whatever prefix the application prepended. The vulnerable usage pattern named in the advisory is a concatenated path such as reply.from('/v1/public/' + req.params['*']), or any design that relies on Fastify route guards running before reply.from() rather than on authorization enforced at the upstream. Per the CPE record, the affected component is @fastify/reply-from across versions below 12.8.1. The trigger conditions are as stated in the advisory; no additional mechanism should be inferred beyond the backslash/percent-encoded normalization and prefix-escape behaviour it describes.

Know when Fastify Reply From 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 8.2 HIGH
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:L/A:N
vuln.today AI 8.2 HIGH

Remote unauthenticated request with no user interaction (AV:N/AC:L/PR:N/UI:N); confidentiality-dominant upstream exposure (C:H) with limited integrity reach (I:L) and no availability impact.

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

Primary rating from Vendor (openjs).

CVSS VectorVendor: openjs

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

Lifecycle Timeline

2
Patch available
Nov 02, 2026 - 12:16 EUVD
CVE Published
Nov 02, 2026 - 10:39 cve.org
HIGH 8.2

DescriptionCVE.org

@fastify/reply-from is a Fastify plugin that forwards requests to an upstream HTTP server. In versions up to and including 12.8.0, the plugin validated proxy paths against forward-slash dot-segments only and then built the target with the WHATWG URL parser, which normalizes a backslash and its percent-encoded form to a forward slash on the http, https, ws, and wss schemes. A path that uses backslash dot-segments therefore bypasses the traversal check and resolves to a different upstream path, so an application that scopes proxying to an upstream prefix, or relies on route guards in front of the forwarding call, can have an unauthenticated request escape the intended prefix and reach other upstream endpoints. The resulting access to unintended upstream resources is primarily a confidentiality impact with limited integrity impact. The issue is fixed in @fastify/reply-from 12.8.1, where the path is normalized and any segment resolving to a single or double dot, along with control characters and ambiguous whitespace, is rejected before the URL is constructed, and users should upgrade to 12.8.1 or later. There is no workaround other than upgrading.

Technical POC Analysis

CWE-22 (Improper Limitation of a Pathname to a Restricted Directory / Path Traversal), localized to buildURL() in @fastify/reply-from.

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Executive ViewAI

Why It Matters

CVE-2026-117518 is a high-severity path traversal flaw in the widely used Fastify plugin @fastify/reply-from that allows unauthenticated attackers to bypass upstream prefix scoping and reach unintended backend endpoints. Applications that concatenate untrusted user input into proxied paths are exposed, potentially leaking sensitive data and undermining access controls. Leadership should prioritize remediation because this affects a core component of many API gateways and could lead to confidentiality breaches.

Business Impact: High
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations include strict validation of user-supplied paths to reject backslashes and encoded characters, avoid concatenating untrusted input into proxy paths, and implement additional authorization checks on upstream endpoints.

Threat Intelligence Overview

Prevalence
Medium
scoped reverse-proxy plugin for popular Fastify framework, niche but common use
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 HIGH
CISA KEV No
Public POC No
EPSS N/A
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.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
Yes
Human Impact
High

Priority Score

41
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +41
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