
Testa e analizza la vulnerabilità CVE-2025-55182 nelle Server Actions di Next.js
Stato del progetto: Sperimentale / Proof of Concept
Questo repository funge da ambiente di ricerca controllato e da framework Proof-of-Concept (PoC) per l'analisi di CVE-2025-55182. Dimostra una vulnerabilità di Prototype Pollution nel contesto delle Next.js Server Actions, prendendo di mira specificamente operazioni di merge ricorsive non sicure.
La vulnerabilità principale risiede in una funzione utilitaria personalizzata deepMerge implementata all'interno di una Next.js Server Action (syncConfiguration). La funzione non dispone di una sanificazione adeguata per le chiavi speciali degli oggetti—in particolare __proto__ e constructor. Questa mancanza consente a un attaccante non autenticato di iniettare proprietà arbitrarie nel Object.prototype globale.
In un runtime Node.js lato server, una prototype pollution riuscita può comportare:
isAdmin) o le impostazioni di configurazione a livello globale.toString o valueOf.child_process o motori di template) per ottenere l'esecuzione di codice arbitrario.lab/next-app/: un'applicazione vulnerabile Next.js 15 progettata per simulare la falla di sicurezza.
src/app/actions.jsx: il codice lato server contenente l'implementazione vulnerabile di deepMerge.exploits/: script Python di automazione per test e sfruttamento.
rce.py: uno script che automatizza l'iniezione di payload JSON malevoli per dimostrare l'inquinamento dello stato del server.get-shell.py: un PoC avanzato che esplora i vettori di deserializzazione del protocollo RSC Flight.docs/PAYLOADS.md: un documento di riferimento contenente vari payload JSON per test e analisi manuali.Puoi eseguire il laboratorio usando Docker (consigliato) o in locale.
Assicurati che Docker e Docker Compose siano installati.
docker-compose up --build
L'applicazione sarà accessibile all'indirizzo http://localhost:3000.
Richiede Node.js 20+.
cd lab/next-app
npm install
npm run dev
L'applicazione sarà accessibile all'indirizzo http://localhost:3000.
http://localhost:3000.docs/PAYLOADS.md (es. il Basic Payload).Gli script Python forniti consentono la verifica programmatica della vulnerabilità.
Prerequisito: recupera il Next-Action ID dalla scheda Rete del browser (cerca un'intestazione Next-Action nelle richieste POST) oppure dall'output del terminale del server.
docker exec -it exploit-runner bash
export ACTION_ID="your_action_id_here"
python3 rce.py "id"
pip install -r exploits/requirements.txt
export ACTION_ID="your_action_id_here"
python3 exploits/rce.py "id"
Nota: lo script rce.py è configurato per dimostrare l'inquinamento dello stato riuscito. L'esecuzione completa della shell dipende da gadget ambientali specifici che possono variare.
Questo progetto è destinato esclusivamente a scopi educativi e ricerca sulla sicurezza.
Non utilizzare il codice o le tecniche qui fornite su sistemi per i quali non disponi di un'autorizzazione esplicita e scritta. Gli autori non sono responsabili di eventuali usi impropri o danni causati da questo materiale.