Skip to main content

@fastify/rate-limit CVE-2026-15144

| EUVDEUVD-2026-50402 MEDIUM
Improper Restriction of Excessive Authentication Attempts (CWE-307)
2026-07-29 openjs
5.3
CVSS 3.1 · NVD
View

Attack ChainAIDerived

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

  1. Access
    Obtain routable IPv6 /64 range
  2. Delivery
    Target auth/OTP endpoint behind plugin
  3. Exploit
    Rotate source IPv6 per request
  4. Execution
    Each address keyed as new bucket
  5. Persist
    Rate limit never enforced
  6. Impact
    Brute-force credentials or abuse endpoint

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V6 - Authentication Brute-force prevention, rate limiting
Exploitation Conditions

Exploitation requires the target Fastify app to use @fastify/rate-limit (before 11.2.0) with its default IP-based key generator, to have trustProxy enabled, and to have IPv6 client addresses surfaced to the origin (e.g. via a proxy passing X-Forwarded-For or a dual-stack listener). The attacker must control an IPv6 range (a /64 suffices) or be able to send re-encoded forms of a single IPv6 address. Limiting factors: IPv4-only deployments and setups where the proxy collapses clients to a single upstream IP are not exploitable; no authentication or user interaction is needed once these conditions hold. This is not a default-configuration remote flaw - it hinges on the trustProxy + IPv6 deployment mode.

Impact

The published CVSS is 7.3 (AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L), reflecting network reachability with no privileges. However, the description imposes a real precondition - trustProxy must be enabled and IPv6 must be surfaced to the origin - which is not universal, so effective attack complexity is higher than AC:L implies. No EPSS score, KEV listing, or POC was provided; there is no public exploit identified at time of analysis and no evidence of active exploitation, so this is not an emergency same-day patch for most operators. The genuine risk is indirect: the flaw does not itself compromise data but removes a control, amplifying downstream threats (credential stuffing, OTP brute force, cost/DoS on expensive endpoints). Priority should scale to whether the deployment actually terminates IPv6 with trustProxy on and relies on this plugin as its primary throttle; IPv4-only stacks are effectively unaffected.

Exploit ScenarioDerived

An attacker with a routed IPv6 /64 (trivial from many hosting providers) targets a login or OTP endpoint fronted by @fastify/rate-limit with trustProxy enabled. They script a brute-force loop that assigns a fresh source address (or a re-encoded form of the same address) to each request, so every attempt lands in a new rate-limit bucket and the throttle never trips. No POC was provided, but the technique requires only routine tooling given the low attack complexity.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
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 29, 2026

Rate-limit bypass in @fastify/rate-limit before 11.2.0 lets IPv6-capable clients defeat request throttling by rotating source addresses across a controlled /64 range or by re-encoding the same address in different textual forms, because buckets are keyed on the verbatim request.ip string. Applications relying on this plugin to protect authentication, password-reset, OTP, or expensive API endpoints can be brute-forced or abused when trustProxy is enabled and IPv6 reaches the origin. No public exploit identified at time of analysis; the flaw is fixed in 11.2.0 via IPv6 canonicalization and a default /64 prefix mask.

RemediationAI

Vendor-released patch: 11.2.0 - upgrade @fastify/rate-limit to 11.2.0 or later, where the default key generator normalizes IPv6 to canonical form, collapses IPv4-mapped IPv6 to IPv4, and masks to a configurable prefix (default /64) via the ipv6Subnet option; tune ipv6Subnet if clients legitimately span multiple /64s or if you need a tighter boundary. If you cannot upgrade immediately, supply a custom keyGenerator that canonicalizes and prefix-masks the client IP, or disable trustProxy so untrusted client IPv6 addresses are not honored (trade-off: real client IPs may be masked behind the proxy, reducing per-client accuracy). As defense in depth for auth flows, add account-level or credential-level lockout and CAPTCHA that do not depend on IP keying. See the advisory at https://github.com/fastify/fastify-rate-limit/security/advisories/GHSA-grpc-p53c-r64v.

Affected VersionsENISA

@fastify/rate-limit 0 <11.2.0

Affected Packages

euvd fastify_rate_limit fix: 11.2.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

@fastify/rate-limit is a plugin for the Fastify Node.js web framework that enforces per-client request quotas, commonly placed in front of authentication and abuse-prone routes. The root cause maps to CWE-307 (Improper Restriction of Excessive Authentication Attempts): the default key generator used request.ip as an opaque string without normalization. IPv6 breaks the implicit one-client-one-key assumption - a single subscriber is typically delegated an entire /64 (2^64 addresses), and IPv6 has many equivalent textual representations (compressed vs. expanded zeros, IPv4-mapped forms like ::ffff:1.2.3.4). Counting each literal string as a distinct client maps one actor to effectively unlimited buckets. The fix in 11.2.0 canonicalizes IPv6 addresses, collapses IPv4-mapped IPv6 to IPv4, and applies a configurable prefix mask (default /64) through a new ipv6Subnet option so an entire subnet shares one bucket.

Know when Fastify Rate Limit 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 HIGH
NVD 5.3 MEDIUM
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N
vuln.today AI 4.8 MEDIUM

Non-default trustProxy+IPv6 path raises AC:H; no privileges needed; impact is bypass of the throttling control (I:L) and resource/cost abuse (A:L), with no direct confidentiality loss.

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

Primary rating from Vendor (openjs).

CVSS VectorNVD

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

Lifecycle Timeline

4
Severity Changed
Aug 05, 2026 - 15:37 NVD
HIGH MEDIUM
CVSS changed
Aug 05, 2026 - 15:37 NVD
7.3 (HIGH) 5.3 (MEDIUM)
Patch available
Jul 29, 2026 - 17:02 EUVD
CVE Published
Jul 29, 2026 - 16:10 cve.org
HIGH 7.3

DescriptionNVD

@fastify/rate-limit before 11.2.0 keys rate-limit buckets by the verbatim client IP string returned from request.ip. Because a single IPv6 client can control a large address range (a /64 holds 2^64 distinct addresses) and the same address has multiple valid textual representations, an IPv6 capable client can defeat the rate-limit boundary by rotating addresses or by rewriting the same address in different forms. Applications that use @fastify/rate-limit to protect endpoints such as authentication, password reset, OTP delivery, or expensive API calls can be bypassed by IPv6 clients behind a proxy that surfaces IPv6 to the origin when trustProxy is enabled. The issue is fixed in @fastify/rate-limit 11.2.0, where the default key generator normalizes IPv6 addresses to their canonical form, collapses IPv4 mapped IPv6 to IPv4, and applies a configurable prefix mask (default /64) via a new ipv6Subnet option.

Executive ViewAI

Why It Matters

@fastify/rate-limit before 11.2.0 contains a rate-limit bypass allowing IPv6-capable clients to circumvent authentication brute-force protections, enabling credential attacks on login, password-reset, and OTP endpoints. Organizations using the plugin with trustProxy enabled face immediate risk of account compromise.

Business Impact: High
Compensating Controls

Apply vendor patch: 11.2.0

Threat Intelligence Overview

EPSS Score
0.3%
Top 83% exploitable
Prevalence
Medium
popular rate-limit plugin for the widely-used Fastify Node framework
Social Media
1
Sightings
Data Quality
6 sources
Confidence: High

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 0.3%
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
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
Yes
Human Impact
High
Technical Impact
Partial

Priority Score

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

Attack Technique

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

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