criticalCWE-863A01:2021

Bypass de Middleware en Next.js (CVE-2025-29927)

Una vulnerabilidad crítica en Next.js anteriores a la 15.2.3 permite a atacantes saltarse completamente los checks de autenticación en middleware enviando un header interno especial.

Cómo Funciona

Next.js usa el header interno `x-middleware-subrequest` para rastrear la profundidad de invocación del middleware y evitar loops infinitos. Los atacantes descubrieron que podían enviar este header desde afuera para que el framework se saltara la ejecución del middleware, bypasseando cualquier guard de auth en middleware.ts.

Código Vulnerable
// MAL: Next.js < 15.2.3 — el atacante envía:
// x-middleware-subrequest: middleware:middleware:middleware
// y este middleware se salta completamente
export function middleware(req: NextRequest) {
  const token = req.cookies.get('session');
  if (!token) return NextResponse.redirect('/login');
}
Código Seguro
// BIEN: actualiza Next.js a >= 15.2.3
// Además: nunca confíes solo en middleware para auth.
// Siempre verifica la sesión en la ruta o página.
export async function GET() {
  const supabase = createClient();
  const { data: { user } } = await supabase.auth.getUser();
  if (!user) return Response.json({ error: 'No autorizado' }, { status: 401 });
}

Ejemplo Real

CVE-2025-29927 — divulgado públicamente en marzo 2025. Afectó todas las versiones de Next.js que usan middleware para auth. Cualquier app donde el middleware era la única capa de auth quedó completamente expuesta. CVSS: 9.1 (Crítico).

Cómo Prevenirlo

  • Actualiza Next.js a 15.2.3 o superior de inmediato
  • Nunca uses middleware como tu única capa de auth — agrega verificación de sesión server-side en páginas y API routes
  • Bloquea el header x-middleware-subrequest en tu CDN o proxy como mitigación temporal
  • Usa Data Hogo para detectar versiones vulnerables de Next.js en tu repo

Tecnologías Afectadas

Next.js

Data Hogo detecta esta vulnerabilidad automáticamente.

Escanea Tu Repo Gratis

Vulnerabilidades Relacionadas