Skip to main content

@fastify/http-proxy CVE-2026-16117

| EUVDEUVD-2026-45379 CRITICAL
Improper Input Validation (CWE-20)
2026-07-18 openjs
10.0
CVSS 3.1 · Vendor: openjs
View

Attack ChainAIDerived

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

  1. Access
    Identify service behind Fastify proxy
  2. Delivery
    Encode a prefix character in request
  3. Exploit
    Route matches but rewrite skipped
  4. Execution
    Encoded path forwarded to upstream
  5. Persist
    Upstream decodes and serves hidden endpoint
  6. Impact
    Access 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.

Act Now Prioritize within 24-48h. Why: CRITICAL severity.
Patch available 0.3% exploitation probability (EPSS)

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

Alert me

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

@fastify/http-proxy 0 <11.6.0

Affected Packages

euvd fastify_http_proxy fix: 11.6.0

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

Vendor (openjs) PRIMARY 10.0 CRITICAL
AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:N
vuln.today AI 9.3 CRITICAL

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.

3.1 AV:N/AC:L/PR:N/UI:N/S:C/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:H/SI:L/SA:N

Primary rating from Vendor (openjs).

CVSS VectorVendor: openjs

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

Lifecycle Timeline

2
Patch available
Jul 18, 2026 - 15:17 EUVD
CVE Published
Jul 18, 2026 - 13:08 cve.org
CRITICAL 10.0

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

Why It Matters

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

Business Impact: Severe
Compensating Controls

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

EPSS Score
0.3%
Top 81% exploitable
Prevalence
Medium
popular Fastify reverse-proxy plugin, common but not universally deployed
Social Media
4
Sightings
Data Quality
5 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 CRITICAL
CISA KEV No
Public POC No
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
CRITICAL severity
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
Out-of-Cycle
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
Yes
Human Impact
Very High

Priority Score

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

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

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