
Ein Proof-of-Concept für CVE-2026-39987
Haftungsausschluss Dieses Skript dient ausschließlich Bildungs- und autorisierten Testzwecken. Die unbefugte Nutzung dieses Tools gegen Systeme ohne ausdrückliche Genehmigung ist ILLEGAL. Der Autor ist nicht verantwortlich für jeglichen Missbrauch dieser Informationen.
Marimo-Versionen vor 0.23.0 weisen eine kritische Schwachstelle zur Remote-Codeausführung (RCE) ohne vorherige Authentifizierung auf. Der Endpunkt /terminal/wsdoes implementiert keine angemessenen Zugriffskontrollen, wodurch ein nicht authentifizierter Angreifer vollen interaktiven Shell-Zugriff auf das System erlangen kann.
| Details | Information |
|---|
| CVE | CVE-2026-39987 |
| Schweregrad | KRITISCH |
| CVSS-Score | 9.3 (CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H) |
| Typ | Remote-Codeausführung ohne vorherige Authentifizierung (RCE) |
| Vektor | WebSocket (/terminal/ws) |
| Betroffenes Produkt | 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 (erforderlich): WebSocket-URI des /terminal/ws-Endpunkts des Ziels.uv run poc.py -t wss://<target-host>/terminal/ws
Nach erfolgreicher Verbindung erhalten Sie eine interaktive Raw-PTY-Sitzung. Zusätzliche Befehle stehen lokal zur Verfügung (werden niemals wie eingegeben an die Remote-Shell gesendet):
| Befehl | Beschreibung |
|---|---|
.upload | Öffnet eine lokale Eingabeaufforderung für einen lokalen Dateipfad und ein Remote-Ziel und überträgt dann die Datei. |
!upload <local_path> <remote_path> | Wie oben, einzeilig. |
!download <remote_path> <local_path> | Lädt eine Datei vom Ziel auf Ihren lokalen Rechner herunter. |
/exit, /bye | Beendet die Sitzung lokal. |
Drücken Sie Ctrl+C, um zu unterbrechen/zu beenden.
>= 0.23.0, das die fehlende Zugriffskontrolle auf /terminal/ws behebt.localhost oder eine interne Schnittstelle und stellen Sie ihm für den Fernzugriff ein VPN/eine Bastion voran./terminal/ws und anderen API-Routen./terminal/ws und nicht authentifizierte Shell-Aktivitäten; die obigen Shodan-/Censys-Dorks können auch defensiv eingesetzt werden, um eigene exponierte, ungepatchte Instanzen zu finden.