☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
Nest logo [ WEBSITE ] [ VENDOR STATS ]
CVSS: 6.9 🐛 CWE-367
👁️
Common Weakness Enumeration - Identifies the specific category of software weakness or flaw.

CVE-2025-69211

CVE-2025-69211 Privilege Escalation in Nest
📅 PUBLISHED: 2025-12-29 16:01 UTC 🔄 UPDATED: 2026-09-23 20:24 UTC
[ OFFICIAL PATCH DEPLOYED ↓ ] FIX: LIKELY — 2 independent sources confirm fix
[ DEFENSE PATCH ↓ ]
💣 PoC: None
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.39%
👁️
0.39% probability
9.7× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
Patch available — upgrade to latest release
CVSS SEVERITY SCALE
9.0–10.0 CRITICAL
7.0–8.9 HIGH
4.0–6.9 MEDIUM
0.1–3.9 LOW
0.0 NONE
6.9
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2025-69211 is a critical security bypass vulnerability in the NestJS framework, specifically affecting applications using the @nestjs/platform-fastify adapter. The flaw resides in how Fastify URL encoding is handled, allowing an attacker to bypass middleware-based security checks (authentication, authorization, sanitization) when middleware is applied to specific routes using string paths or controllers (e.g., .forRoutes('admin')). This can lead to unauthenticated access to protected routes, privilege escalation, and bypassing of input validation. The vulnerability is patched in version 11.1.11 of @nestjs/platform-fastify.

⚡ AUTOMATE YOUR CVE INTELLIGENCE

This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.

›Patch confidence — UNVERIFIED to CONFIRMED, cross-referenced NVD + RHSA + Debian
›Exploit & PoC — poc_status, poc_url, has_exploit. Not in NVD.
›Shodan dorks — ready-made queries to find exposed vulnerable systems
›Detection rules — YARA · Wazuh · Elastic (all plans) · Sigma (Pro)
›pending_fields — know exactly which of 7 fields NVD hasn't processed yet
›Free backfill — data incomplete when you paid? Re-check within 30 days = 0 credits
PAYG €0.08/lookup Standard €19/mo (was €29) · 5k credits Pro €65/mo (was €99) · 20k credits FOUNDING PRICE · LOCKED FOR LIFE · ENDS 31 DEC 2026
[ FROM €19/MO ]
Free sandbox key available
No signup required

Supply Chain & Package Security

This vulnerability is in the @nestjs/platform-fastify npm package. Organizations using NestJS with Fastify must verify their dependency tree and ensure they are not relying on a vulnerable version. The supply chain risk is high because the package is widely used in Node.js server-side applications. Immediate action is required to update to the patched version.

CVSS Breakdown & Threat Level

  • CVSS Score: 0.0 (NVD has not yet assigned a score)
  • Threat Level: Critical (based on the nature of the bypass and potential impact)
  • Attack Vector: Network
  • Attack Complexity: Low
  • Privileges Required: None
  • User Interaction: None
  • Scope: Unchanged
  • Confidentiality Impact: High
  • Integrity Impact: High
  • Availability Impact: None

Deep Dive & Mechanics

The vulnerability exploits a discrepancy in how Fastify handles URL encoding compared to NestJS's middleware routing logic. When a middleware is applied to a specific route (e.g., admin), NestJS uses a string comparison or pattern matching to determine if the middleware should execute. However, Fastify may decode or normalize the URL differently, allowing an attacker to craft a request that bypasses the middleware's route matching.

For example, if middleware is applied to .forRoutes('admin'), an attacker could send a request to /admin (with a double slash) or use URL encoding tricks like /%61dmin (where %61 is 'a'). The middleware might not match these variations, but Fastify would still route the request to the admin controller, effectively bypassing the security check.

Vulnerable vs. Patched Code

Vulnerable Code (pre-11.1.11):

// In a vulnerable NestJS application
import { Module, MiddlewareConsumer } from '@nestjs/common';
import { AuthMiddleware } from './auth.middleware';

@Module({})
export class AppModule {
  configure(consumer: MiddlewareConsumer) {
    consumer
      .apply(AuthMiddleware)
      .forRoutes('admin'); // Vulnerable: string path matching
  }
}

Patched Code (11.1.11+):

// The fix involves normalizing URL paths before matching
// The exact patch is in the @nestjs/platform-fastify package
// It ensures that URL encoding is handled consistently
// between the middleware matching and the Fastify router.

Exploitation & Lab Setup

Red Team

  1. Setup: Deploy a vulnerable NestJS application using @nestjs/platform-fastify@11.0.0 with a middleware protecting the /admin route.
  2. Exploit: Send a request to http://target.com//admin (double slash) or http://target.com/%61dmin (URL-encoded 'a').
  3. Observation: The middleware is bypassed, and the attacker gains access to the admin functionality without authentication.

Example cURL command:

curl -v "http://target.com//admin"

Blue Team

  1. Detection: Monitor for unusual URL patterns, especially double slashes (//) and URL-encoded characters in paths that are supposed to be protected.
  2. Mitigation: Immediately upgrade to @nestjs/platform-fastify@11.1.11 or later.
  3. Workaround: If immediate patching is not possible, implement a custom middleware that normalizes the URL path before any other middleware runs.

Indicators of Compromise (IOCs)

  • Network: HTTP requests to protected routes with double slashes (e.g., //admin) or URL-encoded characters (e.g., /%61dmin).
  • Logs: Access logs showing successful requests to protected routes without prior authentication.
  • Application: Unexpected behavior in middleware that should have blocked certain routes.

Detection Engineering

YARA Rule

rule CVE_2025_69211_NestJS_Fastify_Bypass {
    meta:
        description = "Detects attempts to exploit CVE-2025-69211 NestJS Fastify URL encoding bypass"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "CVE-2025-69211"
    strings:
        $s1 = "//" ascii
        $s2 = /%[0-9a-fA-F]{2}/ ascii
    condition:
        any of ($s1, $s2) and #s2 > 3
}

Sigma Rule

title: CVE-2025-69211 NestJS Fastify URL Encoding Bypass
id: 12345678-1234-1234-1234-123456789012
status: experimental
description: Detects HTTP requests attempting to exploit CVE-2025-69211
author: Valters IT
date: 2025/04/10
logsource:
    category: webserver
    product: nginx
detection:
    selection:
        cs-uri-query|contains:
            - '//'
            - '%61'
            - '%2f'
    condition: selection
falsepositives:
    - Legitimate use of double slashes in some applications
level: high

Suricata Rule

alert http any any -> any any (msg:"CVE-2025-69211 NestJS Fastify URL Encoding Bypass"; flow:to_server,established; content:"//"; http_uri; nocase; sid:1000001; rev:1;)

Remediation & Mitigation

  1. Immediate: Upgrade @nestjs/platform-fastify to version 11.1.11 or later.
  2. Verification: Run npm audit or yarn audit to confirm the vulnerable package is no longer in the dependency tree.
  3. Workaround: If immediate patching is not possible, implement a custom middleware that normalizes the URL path (e.g., remove double slashes, decode URL-encoded characters) before any other middleware runs.
  4. Monitoring: Enable logging for all middleware actions and monitor for unusual URL patterns.
  5. Testing: After patching, test all protected routes to ensure the bypass is no longer possible.

Valters IT
DevSecOps & Cyber Threat Intelligence

◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2025-69211/ · CVE data: NVD/MITRE (public domain) · © 2026 ValtersIT Hub
>_ SYSTEM_CORE: INTEL_ACTIVE
90% TEAM-CURATED // 10% AUTOMATED INGESTION.
ALL PATCH REFERENCES AND VERSION DATA SOURCED FROM NVD + OSV OFFICIAL REGISTRIES.