Un avviso critico per il pacchetto pip pantheon-agents è stato pubblicato nel GitHub Advisory Database il 26 agosto alle 14:36 UTC. L’incidente alla base risale a giugno 2026. Il divario tra queste due date è di 72 giorni, ed è il minore dei problemi di questo caso.
Cosa hanno fatto gli aggressori
L’account PyPI del maintainer è stato compromesso in un attacco alla supply chain e le versioni 0.6.1 e 0.6.2 sono state caricate direttamente su PyPI. Queste release contengono un file .pth — un meccanismo che Python esegue automaticamente all’avvio dell’interprete, prima che venga eseguito qualunque codice dell’utente — che scarica un runtime JavaScript e sottrae variabili d’ambiente, chiavi API, chiavi SSH e credenziali cloud. Non è mai stato necessario importare il pacchetto. Era sufficiente installarlo in un ambiente che avesse poi avviato Python.
La parte pulita
L’avviso è preciso sull’ambito: "Only the PyPI artifacts are affected. The GitHub source repository, its git tags, and all other distribution channels are clean." Chiunque abbia fatto il vendoring dal codice sorgente o bloccato un tag git non è mai stato esposto. Si tratta di un compromesso della distribuzione, non del codice, ed è esattamente il tipo di caso che i lockfile con hash pinning dovrebbero intercettare e che gli intervalli di versione ampi no.
Cosa sbaglia la cornice più comune
Un avviso con un campo patched version che riporta 0.6.4 dice a ogni scanner e a ogni bot per le dipendenze la stessa cosa: aggiorna a 0.6.4 e sei al sicuro. Il corpo dello stesso avviso dice che la distribuzione su PyPI è sospesa e "will resume after account recovery and migration to PyPI Trusted Publishing (OIDC)", e invita gli utenti a installare dai sorgenti GitHub. Quindi la remediation leggibile dalle macchine punta a una release che il registro non sta servendo, mentre la remediation per gli esseri umani dice di smettere di usare il registro. Gli strumenti automatici leggono il primo campo e non il secondo. Un team che lasci agire i propri bot su questo avviso aprirà una pull request che non potrà risolversi.
E non c’è alcun CVE
Il record non riporta alcun identificativo CVE. Le organizzazioni la cui gestione delle vulnerabilità si basa sui CVE — come accade nella maggior parte delle organizzazioni con un processo formale — non vedranno nulla. Un compromesso critico che ruba credenziali in un framework per agenti AI è quindi visibile solo agli strumenti che ingeriscono direttamente gli avvisi di GitHub, 72 giorni dopo i fatti, con un campo di remediation che punta a un punto da cui il pacchetto non può essere scaricato.
La finestra di esposizione è ciò che va verificato
Gli artefatti malevoli non sono più su PyPI, quindi la domanda pratica non è se li si possa ancora installare, ma se lo si sia fatto tra giugno e la loro rimozione. Qualsiasi runner CI o macchina di sviluppo che in quel periodo abbia risolto pantheon-agents 0.6.1 o 0.6.2 dovrebbe essere considerato come se le sue variabili d’ambiente e le credenziali cloud fossero state lette. La remediation non è l’aggiornamento, ma la rotazione.
