Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
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.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2025-29927-PoC — Prueba de concepto del exploit para CVE-2025-29927, una omisión de autorización en el middleware de Next.js. Incluye un laboratorio objetivo vulnerable y un script en Python para verificar la omisión enviando cabeceras x-middleware-subrequest manipuladas. | Kitploit
Herramientas/GitHubGitHub/ritinify/cve-2025-29927-poc
ExplotaciónExplotación de Aplicaciones WebCTFPruebas de PenetraciónAprendizaje y EducaciónLabs y Práctica
GitHubritinify/cve-2025-29927-poc

CVE-2025-29927-PoC

Prueba de concepto del exploit para CVE-2025-29927, una omisión de autorización en el middleware de Next.js. Incluye un laboratorio objetivo vulnerable y un script en Python para verificar la omisión enviando cabeceras x-middleware-subrequest manipuladas.

Ver Repositorio
21hace 1 mesAú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

CVE-2025-29927 — Bypass de autorización de middleware de Next.js — PoC verificado

Un pequeño proyecto de GitHub para verificar CVE-2025-29927 (Bypass de autorización de middleware de Next.js) en un laboratorio de autorización local (VMware: máquina objetivo Ubuntu + máquina atacante Kali).

⚠️ Aviso legal: Este proyecto es solo para fines educativos, CTF y entornos de laboratorio que poseas o para los que tengas autorización explícita. Está estrictamente prohibido su uso en sistemas no autorizados. Las consecuencias derivadas del mal uso de este proyecto son responsabilidad del usuario.


📋 Índice

  • 1. Ficha de la vulnerabilidad
  • 2. Principio de la vulnerabilidad (entenderlo en 30 segundos)
  • 3. Estructura del repositorio
  • 4. Topología del laboratorio (dos máquinas virtuales VMware)
  • 5. Configuración de la máquina objetivo (Ubuntu 24.04)
  • 6. Preparación de la máquina atacante (Kali)
  • 7. Verificación local (paso clave)
  • 8. Parámetros del PoC
  • 9. Autocomprobación rápida sin máquina objetivo (opcional)
  • 10. Mitigación y detección
  • 11. Preguntas frecuentes FAQ
  • 12. Referencias

1. Ficha de la vulnerabilidad

ElementoContenido
CVECVE-2025-29927
Fecha de divulgación2025-03-25 (Aviso de seguridad oficial de Next.js)
Componente afectadoVercel Next.js (framework full-stack de Node.js)
Tipo de vulnerabilidadBypass de autorización / Autorización incorrecta (CWE-863)
Versiones afectadas< 12.3.5, < 13.5.9, < 14.2.25, < 15.2.3
Versiones corregidas12.3.5 / 13.5.9 / 14.2.25 / 15.2.3 y superiores
Nivel de gravedadCrítica / Alta (la puntuación exacta según la página de NVD)

Tras la aparición de la vulnerabilidad, numerosos paneles de administración, callbacks de pago y APIs de páginas internas en entornos de producción fueron comprometidos. Tanto Metasploit como ProjectDiscovery Nuclei han incluido módulos de detección. Es una de las vulnerabilidades de «bypass de autorización a nivel de framework» más representativas de 2025.


2. Principio de la vulnerabilidad (entenderlo en 30 segundos)

Next.js permite escribir la «lógica de autenticación» en el middleware, por ejemplo:

export function middleware(request) {
  if (!isLogin(request)) return NextResponse.redirect("/login"); // No autenticado → bloquear
  return NextResponse.next();
}

El problema es que Next.js internamente depende de una cabecera de solicitud que el cliente puede falsificar para determinar si «esta solicitud ya ha pasado por el middleware»:

x-middleware-subrequest: middleware

En las versiones afectadas, si una solicitud externa incluye esta cabecera interna, Next.js asume erróneamente que el middleware ya se ha ejecutado, por lo que se omite todo el middleware de autenticación. El atacante no necesita ninguna cuenta; basta con acceder a rutas protegidas como /admin con esta cabecera para obtener un 200 directo — y como la página normalmente confía en el middleware y no realiza una segunda verificación, el control de autorización queda anulado (error de límite de confianza).

💡 El valor más comúnmente utilizado en la explotación pública es la forma en que la ruta del middleware se concatena repetidamente, por ejemplo middleware:middleware:middleware:middleware:middleware; un único middleware no funciona en algunas versiones/estructuras de directorios (verificado en este laboratorio con la 14.2.24). Este PoC probará múltiples valores candidatos; si alguno funciona, el bypass habrá tenido éxito.


3. Estructura del repositorio

CVE-2025-29927-PoC/
├── README.md                 # Este documento (explicación de la vulnerabilidad + tutorial del laboratorio VMware)
├── LICENSE                   # MIT
├── .gitignore
├── exploit.py                # ★ PoC de verificación en Python3 solo con biblioteca estándar (se ejecuta en Kali/cualquier máquina)
├── target/                   # ★ Laboratorio de vulnerabilidad autocontenido (copiar a la máquina objetivo Ubuntu)
│   ├── package.json          #   Bloquea [email protected] (versión afectada)
│   ├── middleware.js         #   Simula el «middleware de autenticación» de producción real
│   ├── pages/
│   │   ├── index.js          #   Página de inicio
│   │   ├── login.js          #   Página de inicio de sesión (demuestra la redirección aquí)
│   │   └── admin.js          #   ★ Panel de administración protegido, lee flag.txt en el servidor
│   ├── flag.txt              #   Bandera del laboratorio: FLAG{...}
│   ├── setup.sh              #   Instalación con un clic en la máquina objetivo: Node 20 + npm install + build
│   └── start.sh              #   Escucha en 0.0.0.0:3000 en modo producción
└── tests/
    └── mock_target.py        #   Máquina objetivo simulada sin Node (solo para autocomprobación de desarrollo)

4. Topología del laboratorio (dos máquinas virtuales VMware)

┌───────────────────────────────────────────────────────────┐
│ VMware Workstation Pro 17 (host: Windows)                 │
│ Red: NAT (VMnet8 por defecto), ambas VM en la misma subred, ping mutuo │
│                                                           │
│   ┌──────────────────┐        ┌─────────────────────┐     │
│   │ Objetivo Ubuntu 24.04 │        │ Atacante Kali Linux   │     │
│   │                  │  http   │                     │     │
│   │  Node 20 + Next  │◄───────│  python3 exploit.py  │     │
│   │  14.2.24 :3000   │  GET    │                     │     │
│   └──────────────────┘        └─────────────────────┘     │
│   IP: <TARGET_IP>              IP: <ATTACKER_IP>          │
└───────────────────────────────────────────────────────────┘

4.1 Qué necesitas descargar

PropósitoImagen/SoftwareVersión recomendada
Software de virtualizaciónVMware Workstation Pro 17 (gratuito para uso personal)17.x
Imagen de la máquina objetivoISO de Ubuntu Server LTS24.04.x
Máquina atacanteKali Linux (imagen oficial preconfigurada para VMware o instalación ISO)2025.x
(Opcional)Host con 8 GB+ de RAM, 50 GB+ de disco—

4.2 Configuración general de las máquinas virtuales

  1. Asigna a ambas VM 2 vCPU / 4 GB de RAM / 40 GB de disco;
  2. Selecciona NAT para el adaptador de red de ambas (para garantizar la comunicación en la misma subred); no es necesario el modo puente para fines de aprendizaje;
  3. Durante la instalación de Ubuntu, marca la opción OpenSSH server (para facilitar la copia de archivos por SSH desde el host);
  4. Después de instalar el sistema y confirmar la conexión a internet, crea una instantánea limpia para poder reiniciar el laboratorio fácilmente.

5. Configuración de la máquina objetivo (Ubuntu 24.04)

Todos los siguientes pasos se ejecutan en la máquina objetivo Ubuntu.

5.1 Copiar el código del proyecto a la máquina objetivo (elige una opción)

# Opción A: sube el proyecto a tu propio GitHub y clónalo (recomendado; usa esto si piensas publicarlo en GitHub)
git clone https://github.com/<tu-nombre-de-usuario>/CVE-2025-29927-PoC.git
cd CVE-2025-29927-PoC

# Opción B: cópialo desde el host con scp
# scp -r CVE-2025-29927-PoC  ubuntu@<TARGET_IP>:~/

5.2 Instalar dependencias y compilar la aplicación vulnerable con un clic

Descargar herramienta