CVE-2026-39987
Marimo Remote Code Execution Vulnerability
Beschreibung
CVE-2026-39987 ist eine kritische Pre-Authentifizierungs-Remote-Code-Execution-Schwachstelle in Marimo, einer Open-Source reaktiven Python-Notebook-Umgebung, die von Marimo Inc. entwickelt und in Data-Science-, Machine-Learning-Forschungs- und kollaborativen Analytics-Workflows weit verbreitet eingesetzt wird. Die Schwachstelle ermöglicht es vollständig nicht authentifizierten Angreifern, durch Ausnutzung einer OS Command Injection-Lücke (CWE-78) beliebige OS-Befehle auf dem Host, der den Marimo-Server betreibt, auszuführen und direkten Shell-Zugriff ohne jegliche Zugangsdaten-Anforderungen zu erlangen. Marimo-Notebooks werden häufig in internen Data-Science-Umgebungen, Jupyter-alternativen Setups und zunehmend auf gemeinsam genutzter organisatorischer Infrastruktur oder internet-exponierten Servern für kollaboratives Arbeiten eingesetzt — jede derartige Exposition erzeugt über CVE-2026-39987 eine trivial ausnutzbare Angriffsfläche. Ein erfolgreicher Exploit gibt dem Angreifer eine Shell, die als OS-Benutzer ausgeführt wird, der den Marimo-Server-Prozess ausführt — in Data-Science-Umgebungen häufig ein hoch privilegierter Benutzer mit Zugriff auf Trainings-Datensätze, Modellgewichte, API-Schlüssel, Cloud-Zugangsdaten und proprietäre Forschungsdaten. CISA hat CVE-2026-39987 am 2026-04-23 in den Known Exploited Vulnerabilities (KEV) Katalog aufgenommen, mit einer Behebungsfrist bis 2026-05-07, was aktive Ausnutzung in der Praxis bestätigt. Der EPSS-Score beträgt 0,06989, was diesen CVE in das 91,5. Perzentil einordnet — deutlich erhöht, was auf beobachtete Ausnutzungsversuche im Threat-Intelligence-Sensor-Netzwerk hindeutet. Zum Zeitpunkt der Veröffentlichung wurden keine Ransomware-Kampagnen speziell diesem CVE zugeschrieben.
KEV-Informationen
CVSS-Score
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HIm Rechner öffnenBetroffene Produkte
| Hersteller | Produkt | Version |
|---|---|---|
| coreweave | marimo | < 0.23.0 |
Referenzen
- https://github.com/marimo-team/marimo/commit/c24d4806398f30be6b12acd6c60d1d7c68cfd12a(Patch)
- https://github.com/marimo-team/marimo/pull/9098(Issue Tracking, Patch)
- https://github.com/marimo-team/marimo/security/advisories/GHSA-2679-6mx9-h9xc(Exploit, Mitigation, Vendor Advisory)
- https://www.cisa.gov/known-exploited-vulnerabilities-catalog?field_cve=CVE-2026-39987(US Government Resource)
- https://www.sysdig.com/blog/marimo-oss-python-notebook-rce-from-disclosure-to-exploitation-in-under-10-hours(Exploit, Third Party Advisory)
Schwachstellentyp
CWE-78: Fehlerhafte Neutralisierung von Sonderzeichen in OS-Befehlen (OS Command Injection)
CWE-78, bekannt als OS Command Injection, tritt auf, wenn eine Anwendung einen Betriebssystembefehl ganz oder teilweise aus extern beeinflussten Eingaben konstruiert — wie HTTP-Request-Parameter, Notebook-Cell-Eingaben, Dateipfade oder Konfigurationswerte — ohne Zeichen mit besonderer Bedeutung für den zugrundeliegenden Shell-Interpreter ausreichend zu bereinigen (Sanitization) oder zu escapen. Wenn die manipulierten Eingaben eine Funktion erreichen, die eine System-Shell aufruft (z. B. Pythons os.system(), subprocess.call(shell=True) oder ähnliche), werden die vom Angreifer kontrollierten Zeichen (Semikolons, Pipe-Operatoren, Backticks, Dollarzeichen, Zeilenumbrüche) als Befehlstrennzeichen oder Expansionen interpretiert, was dazu führt, dass die Shell vom Angreifer gelieferte Befehle zusätzlich zum oder anstelle des beabsichtigten Befehls ausführt. Bei CVE-2026-39987 erfolgt diese Injektion auf Vor-Authentifizierungs-Ebene — der verwundbare Code-Pfad ist erreichbar, bevor irgendeine Benutzeridentitätsprüfung stattfindet, d. h. für die Ausnutzung ist kein Konto erforderlich.
OS Command Injection-Schwachstellen in Python-basiertem Data-Science-Tooling haben besonders schwerwiegende Konsequenzen, da Python-Notebook-Umgebungen typischerweise mit den vollen Rechten des Benutzers ausgeführt werden, der den Server gestartet hat — häufig in Umgebungen mit direktem Zugriff auf sensible Datenpipelines, ML-Modell-Trainingsinfrastruktur, Cloud-Provider-Credential-Dateien (AWS ~/.aws/credentials, GCP Application-Default-Credentials, Azure CLI-Token) und Git-Repositories mit proprietärem Code. Im Gegensatz zu traditioneller Web-Anwendungs-Command-Injection, bei der der Server möglicherweise ein eingeschränkter Web-Benutzer ist, werden Notebook-Server häufig von Data Scientists oder ML-Engineers mit breitem Dateisystem- und Cloud-Zugriff betrieben. Zusätzlich bedeutet Marimos reaktives Notebook-Modell, dass der Server-Prozess persistenten Zustand hält, was Angreifern eine stabile, langlebige Shell-Umgebung anstelle eines einmaligen Befehlsausführungskontexts bietet.
Mehr erfahren: CWE-78 — Fehlerhafte Neutralisierung von Sonderzeichen in OS-Befehlen
Auswirkungsanalyse
Der Angriffsvektor ist Netzwerk (Network) — CVE-2026-39987 ist über jede Netzwerkverbindung ausnutzbar, die das HTTP-Interface des Marimo-Servers erreichen kann, das standardmäßig Port 2718 verwendet. Marimo-Instanzen in Data-Science-Umgebungen sind häufig ohne Authentifizierung in internen Netzwerken exponiert (die Standard-Marimo-Konfiguration erfordert keine Anmeldung), und einige Deployments sind unbeabsichtigt über das Internet über falsch konfigurierte Cloud-Security-Groups, Port-Forwarding oder ngrok-artige Tunnel zugänglich, die Data Scientists für Remote-Zusammenarbeit verwenden. Die Angriffskomplexität (Attack Complexity) ist Niedrig (Low) — die Command Injection erfordert keine besonderen Vorbedingungen, keine Kenntnis des Anwendungszustands und keine Zeitabhängigkeit. Erforderliche Rechte (Privileges Required) sind Keine (None) — die Schwachstelle ist eine Pre-Authentifizierungs-Schwachstelle, die jeden nicht authentifizierten Angreifer zu einem Zero-Click-, Zero-Credential-RCE macht. Benutzerinteraktion (User Interaction) ist Keine (None).
Der Scope der Auswirkungen erstreckt sich über den Marimo-Prozess selbst hinaus auf das gesamte Host-System und potenziell auf verbundene Infrastruktur. Der Vertraulichkeitsimpact (Confidentiality) ist Hoch (High): Der Angreifer erhält Shell-Zugriff auf den Host und kann alle für den Marimo-Prozessbenutzer zugänglichen Dateien lesen — einschließlich Cloud-Provider-Credential-Dateien, SSH-Private-Keys, Umgebungsvariablen mit API-Token, Jupyter/Marimo-Notebook-Dateien mit eingebetteten Daten, ML-Modellgewichte und Trainingsdaten sowie Geheimnisse im Arbeitsverzeichnis oder Python-Pfad. Der Integritätsimpact (Integrity) ist Hoch (High): Der Angreifer kann Notebooks modifizieren, backdoored Code in gemeinsam genutzte Repositories einbringen, Trainingsdaten verändern (Model Poisoning), bösartige Skripte in die Datenpipeline einfügen und persistenten Zugriff via crontab, SSH authorized_keys oder modifizierten Python-Paketen etablieren. Der Verfügbarkeitsimpact (Availability) ist Hoch (High): Der Angreifer kann den Marimo-Server beenden, Trainingsläufe korrumpieren, Datensätze löschen oder den Host als Pivot-Punkt für weitere Angriffe in interne Netzwerke nutzen.
Der Data-Science-Kontext verstärkt alle CIA-Auswirkungen: Cloud-Zugangsdaten auf Notebook-Servern haben häufig breiten S3-, GCS- oder Azure-Blob-Storage-Zugriff (auf Trainingsdaten-Buckets), breite Compute-Berechtigungen (für den Start von GPU-Instanzen) und manchmal organisationsweite Admin-Level-API-Schlüssel für ML-Plattform-Dienste. Ein erfolgreicher Exploit ist nicht nur eine Host-Kompromittierung, sondern ein potenzieller Einstiegspunkt in die gesamte Cloud-Daten-Infrastruktur.
Exploit-Reifegrad
CVE-2026-39987 ist als aktiv in der Praxis ausgenutzt bestätigt, mit CISA-Aufnahme in den KEV-Katalog am 2026-04-23 mit einer Behebungsfrist bis 2026-05-07. Der EPSS-Score von 0,06989 platziert ihn im 91,5. Perzentil — die Top ~8,5 % aller CVEs nach Ausnutzungswahrscheinlichkeit — was auf beobachtete Ausnutzungsversuche in Threat-Intelligence-Sensor-Netzwerken mit einer Rate deutlich über dem Baseline hindeutet.
Die Pre-Authentifizierungs-RCE-Natur dieser Schwachstelle — kombiniert mit Marimos typischem Deployment ohne obligatorische Authentifizierung — macht sie für automatisierte Ausnutzungs-Tooling sehr attraktiv. Opportunistische Scanner und Botnet-Betreiber prüfen routinemäßig bekannte Notebook-Server-Ports (Jupyters 8888, Marimos 2718, ähnliche) und können vulnerable Instanzen ohne zielspezifisches Wissen massenweise ausnutzen. Der EPSS-Score im 91,5. Perzentil ist konsistent mit dieser Art von breiter automatisierter Scan-Aktivität.
Zum Zeitpunkt der Veröffentlichung wurden keine spezifischen Ransomware-Gruppen oder APT-Akteure öffentlich der CVE-2026-39987-Ausnutzung zugeschrieben. Pre-Authentifizierungs-RCE-Schwachstellen mit Shell-Zugriff in Data-Science-Infrastruktur sind jedoch für mehrere Bedrohungsakteur-Klassen attraktiv: opportunistische Cryptominer, die Notebook-Server ausnutzen, um Kryptowährung unter Verwendung von Opfer-Compute-Ressourcen zu schürfen (eine seit 2019 gut dokumentierte Bedrohung für Jupyter- und Notebook-Infrastruktur), Datenexfiltrations-Akteure, die nach ML-Modell-IP und Trainingsdaten suchen, sowie Supply-Chain-Angreifer, die Notebook-Server-Zugriff nutzen können, um gemeinsam genutzte Datenpipelines oder Modell-Repositories zu vergiften. Die Geschwindigkeit der KEV-Listung relativ zur CVE-Veröffentlichung deutet darauf hin, dass die Ausnutzung nach Bekanntwerden der Schwachstelle schnell beobachtet wurde, konsistent mit automatisiertem Scannen durch vorbereitete Bedrohungsakteure.
Behebung
-
Einhaltung der CISA KEV Directive: Föderale zivile Exekutivbehörden müssen CVE-2026-39987 bis 2026-05-07 gemäß BOD 22-01 remediieren. Der EPSS-Score im 91,5. Perzentil und bestätigte aktive Ausnutzung machen äquivalente Dringlichkeit für alle Organisationen angemessen. Inventarisieren Sie sofort alle Marimo-Server-Instanzen in der gesamten Umgebung — einschließlich ad-hoc-Developer-Deployments, die möglicherweise nicht in Asset-Management-Systemen erfasst sind.
-
Marimo auf die gepatchte Version aktualisieren: Aktualisieren Sie Marimo auf die Version, die CVE-2026-39987 behebt, wie im Marimo Security Advisory angegeben (github.com/marimo-team/marimo/security/advisories). Marimo wird über PyPI verteilt und kann mit
pip install --upgrade marimooderuv add marimo --upgradeje nach Paketverwaltung des Projekts aktualisiert werden. Für Conda-Umgebungen verwenden Sieconda update marimo, falls in den konfigurierten Channels verfügbar. Überprüfen Sie die installierte Version nach dem Upgrade mitmarimo --version. -
Interim-Maßnahmen: Falls sofortiges Patching nicht möglich ist, fahren Sie alle Marimo-Server-Instanzen herunter, die nicht unbedingt benötigt werden. Für Instanzen, die in Betrieb bleiben müssen, beschränken Sie sofort den Netzwerkzugriff auf den Marimo-Port (Standard: 2718) auf nur vertrauenswürdige IP-Adressen über host-basierte Firewall-Regeln (
ufw,iptables,nftables) oder Netzwerk-Sicherheitsgruppen. Platzieren Sie den Marimo-Server hinter einem authentifizierten Reverse-Proxy (nginx mitauth_basicoder OAuth2 Proxy), der Authentifizierung erfordert, bevor irgendeine Anfrage Marimo erreicht. -
Netzwerk- und Zugriffskontrollen: Überprüfen Sie alle Firewall-Regeln und Cloud-Security-Group-Konfigurationen für Marimo-Server-Ports. Jede über das Internet ohne Authentifizierung erreichbare Marimo-Instanz sollte als kompromittiert betrachtet und als aktiver Vorfall behandelt werden. Erzwingen Sie die Regel, dass Notebook-Server niemals direkt internet-exponiert sein dürfen — verlangen Sie VPN oder Bastion-Host-Zugriff als Voraussetzung. Wenden Sie Netzwerksegmentierung an, sodass Marimo-Hosts nur die spezifischen Cloud-Storage-Endpunkte und Compute-Ressourcen erreichen können, die für ihre Notebooks erforderlich sind.
-
Erkennung und Incident-Untersuchung: Überprüfen Sie OS-Level-Prozessausführungs-Logs auf Marimo-Hosts auf unerwartete Child-Prozesse, die vom Marimo-Server-Prozess erzeugt wurden. Suchen Sie nach Shell-Aufrufen (
/bin/sh,/bin/bash) mit verdächtigen Argumenten, Netzwerkverbindungen zu externen IP-Adressen und Datei-Erstellungsereignissen in sensiblen Verzeichnissen (~/.ssh, ~/.aws, /etc/cron.d). Angesichts der KEV-Bestätigung aktiver Ausnutzung sollte jede Organisation, die Marimo betreibt, auf unautorisierte SSH-authorized_keys-Einträge, neue crontab-Einträge, unerwartete über pip installierte Python-Pakete und modifizierte Notebook-Dateien prüfen. Führen Sie eine vollständige Datei-Integritätsprüfung durch, falls der Server während des Schwachstellenfensters öffentlich zugänglich war. -
Defense-in-Depth gegen CWE-78: Betreiben Sie Marimo-Server als dediziertes, minimal-privilegiertes Service-Konto ohne Cloud-Credential-Dateien in seinem Home-Verzeichnis — übergeben Sie Cloud-Zugangsdaten über Instance-Metadata oder Umgebungsvariablen, die nur auf spezifisch benötigte Ressourcen beschränkt sind. Verwenden Sie OS-Level-Sandboxing (systemd-Dienst mit
NoNewPrivileges=yes,PrivateTmp=yes,ReadOnlyPaths=/mit explizitenReadWritePaths-Ausnahmen), um die Auswirkungen jeder Command Injection zu begrenzen. Implementieren Sie ausgehende Netzwerkbeschränkungen auf Marimo-Hosts, um Angreifer-Exfiltrations-Kanäle zu verhindern. Speichern Sie API-Schlüssel und Cloud-Zugangsdaten in einem Secrets Manager (AWS Secrets Manager, HashiCorp Vault) und injizieren Sie sie zur Laufzeit, anstatt sie in Dateien zu persistieren, die für den Notebook-Server-Prozess zugänglich sind.
Technische Details
CVE-2026-39987 ist eine OS Command Injection-Schwachstelle (CWE-78) im serverseitigen Python-Code von Marimo. Marimo ist ein reaktives Python-Notebook, das Notebook-Cells als reaktiven Graph erneut ausführt, wenn sich Eingaben ändern, und seine Server-Komponente verarbeitet HTTP-Anfragen vom browserbasierten Frontend, um Python-Code auszuführen und die Notebook-Session zu verwalten. Die Schwachstelle existiert in einem Code-Pfad, der vom Angreifer kontrollierte Eingaben verarbeitet — wahrscheinlich ein Request-Parameter, Notebook-Name, Dateipfad oder Konfigurationswert — und ihn ohne ausreichende Sanitization an einen System-Shell-Aufruf übergibt.
Die Pre-Authentifizierungs-Natur der Schwachstelle deutet darauf hin, dass der verwundbare Code-Pfad ausgelöst wird, bevor Marimos Session-Authentifizierungsprüfungen (falls konfiguriert) stattfinden, oder dass der spezifische Endpunkt öffentlich zugänglich sein soll (z. B. ein Health-Check, ein Static-File-Server oder ein Initial-Session-Setup-Endpunkt), aber Eingaben nicht sanitisiert, die einen Shell-Befehl erreichen. Pythons os.system(), subprocess.call(shell=True), subprocess.Popen(shell=True) und shlex-umgehende Muster sind häufige Quellen von CWE-78 in Python-Anwendungen. Die Verwendung von shell=True in subprocess-Aufrufen ist besonders gefährlich, da sie den gesamten Befehl-String an /bin/sh -c übergibt und Shell-Metazeichen in vom Angreifer kontrollierten Eingaben erlaubt, zusätzliche Befehle einzufügen.
Marimos Standard-Server-Konfiguration auf Port 2718 startet ohne obligatorische Authentifizierung und verlässt sich auf die Annahme, dass er auf localhost oder in einer vertrauenswürdigen Netzwerkumgebung betrieben wird. Diese Design-Annahme — im gesamten Jupyter-Ökosystem und seinen Alternativen verbreitet — erzeugt ein systemisches Risiko, wenn Notebook-Server unbeabsichtigt exponiert werden. CVE-2026-39987 zeigt, dass selbst die Annahme "lokal ausführen und dem Netzwerk vertrauen" ungültig ist, wenn die Anwendung selbst vom Angreifer gelieferte Shell-Befehle ohne Authentifizierung ausführt.
Das Marimo Security Advisory und das zugehörige GitHub-Commit-Diff für die Behebung liefern den spezifischen verwundbare Code-Pfad, betroffene Versionen und den Remediierungsansatz (Input Sanitization, Entfernung von shell=True oder Verwendung von Befehlsargument-Arrays anstelle von Shell-Strings). Konsultieren Sie github.com/marimo-team/marimo/security/advisories für die autoritativen technischen Details.
Häufig gestellte Fragen
Wird CVE-2026-39987 aktiv ausgenutzt?
Ja. CISA hat aktive Ausnutzung bestätigt, indem CVE-2026-39987 am 2026-04-23 in den KEV-Katalog aufgenommen wurde. Der EPSS-Score im 91,5. Perzentil zeigt an, dass weitverbreitete Ausnutzungsversuche in Threat-Intelligence-Feeds erfasst werden. Pre-Authentifizierungs-RCE-Schwachstellen in Notebook-Servern sind bekannte hochwertige Ziele sowohl für automatisierte Botnet-Betreiber (Cryptomining) als auch für gezielte Akteure (Datenexfiltration, Supply-Chain-Vergiftung).
Welche Produkte sind betroffen?
Marimo, die Open-Source reaktive Python-Notebook-Umgebung (github.com/marimo-team/marimo, über PyPI als marimo-Paket vertrieben), ist in Versionen vor dem gepatchten Release betroffen. Die betroffenen Versionen sind in Marimos Security Advisory auf der GitHub Security Advisories-Seite angegeben. Organisationen sollten alle Marimo-Installationen über Developer-Workstations, gemeinsam genutzte Server, Cloud-gehostete Notebook-Umgebungen und CI/CD-Pipelines, die Marimo für notebook-gesteuerte Automatisierung nutzen, inventarisieren.
Wie behebe ich die Schwachstelle?
Aktualisieren Sie Marimo auf die gepatchte Version mit pip install --upgrade marimo oder dem entsprechenden Befehl für Ihren Paketmanager. Die gepatchte Version ist im Marimo Security Advisory angegeben. Als Interim-Maßnahme während der Patch-Vorbereitung fahren Sie alle nicht benötigten Marimo-Server-Instanzen herunter und beschränken Sie den Netzwerkzugriff auf den Marimo-Port (Standard 2718) auf nur vertrauenswürdige IP-Adressen. Platzieren Sie erforderliche Marimo-Instanzen hinter einem authentifizierten Reverse-Proxy, der vor Weiterleitung an die Marimo-Anwendung eine Anmeldung erfordert.
Wie schwerwiegend ist die Schwachstelle?
CVE-2026-39987 ist Kritisch (Critical). Ein nicht authentifizierter Angreifer mit Netzwerkzugriff auf den Marimo-Server kann beliebige OS-Befehle ausführen und ohne Zugangsdaten oder Vorwissen eine Shell auf dem Host erlangen. In Data-Science-Umgebungen bedeutet dies typischerweise sofortigen Zugriff auf Cloud-Provider-Zugangsdaten, API-Schlüssel, ML-Trainingsdaten, Modellgewichte und proprietären Code. Die bestätigte KEV-Listung und der EPSS-Score im 91,5. Perzentil machen dies zu einem P0-Sofort-Remediierungselement für jede Organisation, die Marimo betreibt.
Hilfe beim Schwachstellenmanagement?
Unsere Sicherheitsexperten helfen Ihnen bei der Priorisierung und Behebung von Schwachstellen.