CVE-2026-39987 ist eine kritische Schwachstelle, die ohne vorherige Authentifizierung die Ausführung von Code aus der Ferne erlaubt. Betroffen sind alle Marimo-Versionen bis einschließlich 0.20.4; ein nicht authentifizierter Angreifer kann darüber beliebige Systembefehle ausführen. Behoben wurde das Problem mit Version 0.23.0, die in diesem Monat erschien. Seitdem wird die Lücke aktiv ausgenutzt, etwa für manuelle Erkundung von Honeypot-Systemen und Versuche, sensible Daten abzugreifen.
Den nun beschriebenen Vorfall verzeichnete Sysdig nach eigenen Angaben am 10. Mai 2026. Der Angreifer sammelte Zugangsdaten aus der Umgebung und nutzte den erbeuteten AWS-Zugriffsschlüssel für API-Aufrufe gegen den AWS Secrets Manager, um einen privaten SSH-Schlüssel abzurufen. Wenige Minuten später erfolgte die erste SSH-Authentifizierung am Bastion-Server, gefolgt von acht parallelen Sitzungen gegen den nachgelagerten Server, über die die interne PostgreSQL-Datenbank abgesaugt wurde.
Sysdig führt vier Indizien dafür an, dass ein LLM-Agent die Aktivität steuerte. Erstens improvisierte der Angreifer einen Datenbank-Dump, ohne das Schema vorher zu kennen. Zweitens tauchte beim Durchsuchen nach Zugangsdaten ein chinesischsprachiger Planungskommentar direkt im Befehlsstrom auf: „看还能做什么", übersetzt „Mal sehen, was wir noch tun können".
„Der Datenbank-Hostname war nichtssagend, es gab keine Anwendungskennung auf der Festplatte und keinen vorbereiteten Schema-Dump, und dennoch landete die Kette innerhalb von Minuten bei einer Tabelle mit Zugangsdaten", erklärte Sysdig. „Der Angreifer muss Ihre Umgebung nicht mehr sehen, um darin zu operieren."
Drittens waren alle Befehle auf maschinelle Verarbeitung ausgelegt: Sie wurden durch ein Trennzeichen „—" abgegrenzt, die Ausgaben begrenzt, der Befehl „less" deaktiviert und der Fehlerkanal (stderr) verworfen, um Störsignale zu minimieren. Viertens stammten übergebene Werte jeweils aus der Ausgabe des vorherigen Schritts – etwa wenn ein „cat"-Befehl auf die Datei „~/.pgpass" angewendet und das Ergebnis in die nächste Aktion eingespeist wurde. In einem weiteren Fall ging einem „cat ~/.ssh/id_ed25519" ein „ls -la ~/.ssh/id_ed25519*" voraus, um die Existenz des Schlüssels zu bestätigen.
„Wenn ein skriptgesteuerter Akteur ein Vorgehen je Ziel erstellt und wiederverwendet, besteht die Hürde für ein neues Ziel im Entwicklungsaufwand", folgert Sysdig. „Ein Agenten-Operator hingegen bringt allgemeines Vorwissen über eine Klasse von Anwendungen mit und stellt die Kette live passend zum Ziel zusammen. Hier wird die Hürde zum Inferenz-Budget, nicht zur Skript-Erstellung." Entscheidend für Verteidiger sei die Anpassungsfähigkeit: Ein skriptgesteuerter Angreifer breche bei einer fehlenden Datei, einem unerwarteten Schema oder einem Anmeldefehler ab, während ein Agent die Überraschung erkenne und seinen nächsten Schritt selbst wähle.
Sysdig empfiehlt, auf die aktuelle Marimo-Version zu aktualisieren, Umgebungen auf öffentlich erreichbare Instanzen zu prüfen sowie Zugangsdaten, API-Schlüssel und SSH-Schlüssel zu erneuern.
