
Un proof-of-concept per CVE-2026-39987
Disclaimer Questo script è destinato SOLO a scopi educativi e di test autorizzati. L'uso non autorizzato di questo strumento contro sistemi senza esplicito permesso è ILLEGALE. L'autore non è responsabile di qualsiasi uso improprio di queste informazioni.
Le versioni di Marimo precedenti alla 0.23.0 presentano una vulnerabilità critica di esecuzione remota di comandi (RCE) che non richiede autenticazione preventiva. L'endpoint /terminal/ws non implementa controlli di accesso adeguati, consentendo a un utente non autenticato di ottenere accesso completo a una shell interattiva sul sistema.
| Dettagli | Informazioni |
|---|
| CVE | CVE-2026-39987 |
| Gravità | CRITICAL |
| Punteggio CVSS | 9.3 (CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H) |
| Tipo | Esecuzione remota di codice (RCE) pre-autenticazione |
| Vettore | WebSocket (/terminal/ws) |
| Prodotto interessato | Marimo < 0.23.0 |
| Patch | Marimo ≥ 0.23.0 |
http.favicon.hash:-1864630356
services.http.response.favicons.hashes: -1864630356
-1864630356/api/version# install uv (skip if already installed)
curl -LsSf https://astral.sh/uv/install.sh | sh
uv venv
uv pip install -r requirements.txt
uv run poc.py -t <target_url>
-t, --target_url (obbligatorio): URI WebSocket dell'endpoint /terminal/ws del target.uv run poc.py -t wss://<target-host>/terminal/ws
Una volta connessi si ottiene una sessione pty interattiva raw. Comandi aggiuntivi disponibili localmente (mai inviati alla shell remota come digitati):
| Comando | Descrizione |
|---|---|
.upload | Apre un prompt locale per un percorso file locale e una destinazione remota, quindi carica il file. |
!upload <local_path> <remote_path> | Come sopra, in una sola riga. |
!download <remote_path> <local_path> | Scarica un file dal target sulla tua macchina locale. |
/exit, /bye | Chiude la sessione localmente. |
Premi Ctrl+C per interrompere/uscire.
>= 0.23.0, che corregge il controllo di accesso mancante su /terminal/ws.localhost o a un'interfaccia interna e ponilo dietro una VPN/bastion per l'accesso remoto./terminal/ws e alle altre rotte API./terminal/ws e attività di shell non autenticata nei log del server; i dork Shodan/Censys sopra possono essere usati anche in modalità difensiva per trovare le tue istanze esposte e non aggiornate.