Agent LLM conduce post-exploitation autonoma su Marimo RCE

Sysdig documenta il primo caso di agent LLM che sostituisce completamente l'operatore umano nella post-exploitation dopo RCE su Marimo CVE-2026-39987.

Contenuto

Agent LLM conduce post-exploitation autonoma su Marimo RCE
Agent LLM conduce post-exploitation autonoma su Marimo RCE

Il 10 maggio 2026 un attore di minaccia sconosciuto ha utilizzato un agent LLM per condurre l'intera fase di post-exploitation dopo aver ottenuto accesso iniziale tramite CVE-2026-39987, una vulnerabilità RCE pre-authentication critica nel framework notebook Python Marimo. L'incidente, documentato dal Sysdig Threat Research Team e reso noto da The Hacker News, segna la prima evidenza pubblica di un modello linguistico che sostituisce completamente l'operatore umano nella catena di attacco offensiva: dall'improvvisazione sullo schema database alla pivoting cloud fino all'esfiltrazione completa in meno di due minuti. Il caso solleva questioni immediate sulla rilevabilità di comportamenti generati da intelligenza artificiale rispetto a playbook tradizionali.

Punti chiave
  • CVE-2026-39987 è una vulnerabilità RCE pre-authentication critica nel framework Marimo, con CVSS v4.0 9.3 (Critical), che permette esecuzione di codice remoto come root tramite l'endpoint WebSocket /terminal/ws senza validazione dell'autenticazione.
  • Marimo versioni precedenti alla 0.23.0 sono vulnerabili; il fix è stato rilasciato nella versione 0.23.0.
  • Sysdig ha osservato il primo tentativo di exploit in-the-wild entro 9 ore e 41 minuti dalla pubblicazione dell'advisory.
  • Nell'incidente del 10 maggio 2026, un agent LLM ha gestito autonomamente la post-exploitation: recupero credenziali cloud, pivoting via SSH bastion, esfiltrazione schema e contenuto completo di un database PostgreSQL interno in meno di due minuti, con la catena end-to-end conclusa in poco più di un'ora.

La falla: autenticazione bypassata sul terminale WebSocket

La vulnerabilità CVE-2026-39987 risiede nell'endpoint WebSocket /terminal/ws di Marimo, un framework notebook Python reactive con circa 19.600 stelle GitHub. Secondo l'advisory GitHub Security Advisory GHSA-2679-6mx9-h9xc, questo endpoint non effettua la validazione dell'autenticazione che invece protegge gli altri WebSocket del prodotto. La conseguenza è l'apertura di una shell PTY interattiva con privilegi root nel container Docker di default, senza necessità di credenziali.

EndorLabs ha assegnato alla vulnerabilità un punteggio CVSS v4.0 di 9.3, classificandola Critical. Il National Vulnerability Database registra il medesimo identificatore con vettore AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H. La versione 0.23.0 corregge la falla. EndorLabs ha rilevato circa il 16% di istanze Marimo esposte su Internet come vulnerabili in un campione di 186 connessioni testate, con 30 upgrade WebSocket riusciti su /terminal/ws. Il vendor specifica che questo dato rappresenta un lower bound.

La finestra di exploitation è stata estremamente compressa: Sysdig ha registrato il primo tentativo contro un honeypot entro 9 ore e 41 minuti dalla disclosure pubblica, un intervallo che lascia margini ridotti per il patching manuale in ambienti esposti.

L'agent al posto dell'operatore: quattro indicatori tecnici

L'elemento distintivo dell'incidente del 10 maggio 2026 non è l'accesso iniziale, ma ciò che è accaduto dopo. Sysdig documenta quattro indicatori convergenti dell'impiego di un agent LLM nella post-exploitation. Il primo è l'improvvisazione: il database target aveva hostname opaco, nessun identificatore applicativo su disco e nessun dump pre-staging, ma l'attaccante ha individuato una tabella credenziali nel giro di minuti. Il secondo è un commento in cinese nel command stream — "看还能做什么", tradotto come "See what else we can do" — che suggerisce un ciclo di ragionamento esplorativo piuttosto di uno script prefabbricato.

Il terzo indicatore riguarda la struttura dei comandi: delimiter ---, output bounded, disabilitazione del pager less, discard dello stderr. Si tratta di pattern ottimizzati per il consumo macchina, non umano. Il quarto è il value handoff, ovvero il passaggio dinamico di output da strumenti precedenti come input per comandi successivi, senza intervento esterno.

Come riporta Sysdig via The Hacker News: "The attacker compromised an internet-reachable Marimo notebook via CVE-2026-39987, extracted two cloud credentials from the compromised host, replayed them through a fanned-out egress pool to retrieve an SSH private key from AWS Secrets Manager, and used that key to drive eight short SSH sessions against a downstream SSH bastion server". La fase su bastion ha esfiltrato "the schema and full contents of an internal PostgreSQL database in under two minutes". Otto sessioni SSH parallele, poco più di un'ora di catena end-to-end.

"The database hostname was opaque, with no application identifier on disk and no schema dump pre-staged, yet the chain still landed on a credential table within minutes. The attacker no longer needs to see your environment to operate inside it" — Sysdig Threat Research Team

Dal playbook all'inference budget: il cambio di economia offensiva

La trasformazione documentata da Sysdig è economica prima che tecnica. In un attacco tradizionale basato su playbook, ogni nuovo target richiede engineering time: ricognizione manuale, adattamento dello script, verifica delle condizioni. L'agent LLM inverte questa equazione. Come osserva Sysdig: "When a scripted operator builds a per-target playbook and reuses it, the bar to adding a new target is engineering time. However, an agent operator carries general priors about a class of applications and composes the chain live to best fit its target. Here, the bar becomes inference budget, not playbook authorship".

La distinzione è rilevante per la difesa. Un attaccante scriptato, di fronte a un file mancante, uno schema imprevisto o un errore di autenticazione, abortisce o ricade su un fallback hard-coded. L'agent "reads the surprise, decides what to try next, and keeps going". Questa adattività elimina i punti di attrito che tradizionalmente generano rumore rilevabile: i ritmi dell'operatore umano, la ripetizione di pattern noti, la dipendenza da playbook statici.

Il modello LLM specifico non è stato identificato da Sysdig. Il dossier non specifica se l'agent fosse ospitato localmente o interrogato via API cloud, né quantificare il costo inference budget effettivo dell'operazione.

Cosa fare adesso

  • Aggiornare immediatamente Marimo alla versione 0.23.0 o successiva; le release notes ufficiali confermano che questa versione corregge la vulnerabilità.
  • Rimuovere dalla rete perimetrale o limitare l'accesso alle istanze Marimo in modalità edit mode, che rappresentano la superficie di attacco documentata.
  • Verificare nei log di rete connessioni WebSocket non autenticate verso endpoint /terminal/ws come indicatore di ricognizione pre-exploitation.
  • Valutare la presenza di comportamenti "agent-like" nei log di comando: delimiter strutturati, output bounded con disabilitazione di pager interattivi, e sequenze di comandi che mostrano value handoffs da output precedenti.

Detection: dalla firma al comportamento

L'incidente Marimo impone una rilettura delle assunzioni sulla detection. Gli indicatori tecnici dell'agent LLM — delimiter machine-readable, stderr discard, bounded output — non sono anomalie di configurazione ma proprietà intenzionali di un sistema che consuma comandi invece di digitarli. La differenza tra un operatore umano remoto e un agent autonomo non sta più nella velocità ma nella struttura del flusso di lavoro.

Il commento cinese nel command stream resta un dato di contesto, non una prova di provenienza geografica. L'identità dell'attore è sconosciuta, e il dossier non stabilisce se l'incidente del 10 maggio sia un caso isolato o l'inizio di un pattern più ampio. Il numero totale di vittime dell'exploitation di CVE-2026-39987 non è quantificato.

Per le organizzazioni che impiegano Marimo in workflow di data science, machine learning e analytics interne, l'esposizione di istanze in edit mode costituisce un rischio critico di account takeover cloud e data breach. Per il settore security, l'evento introduce un nuovo oggetto di rilevamento: non più solo l'exploit, ma il comportamento post-exploit che tradisce la presenza di un ragionamento artificiale invece di un operatore umano.

La commoditizzazione dell'AI offensiva non è prospettiva ma dato di fatto documentato. Il tempo tra disclosure e exploitation si misura ora in ore, e la post-exploitation in minuti di inference.

Le informazioni sono state verificate sulle fonti citate e aggiornate al momento della pubblicazione.

Fonti

Link utili

Apri l'articolo su DeafNews