Tre Ore, Non Tre Mesi

Il 23 luglio, tre ricercatori di sicurezza di Hacktron osservavano un heap buffer overflow in libheif, la libreria che decodifica le foto HEIC e HEIF. Avevano una teoria. Il forum della community di OpenAI, community.openai.com, girava su Discourse. La pipeline di caricamento di Discourse passava i formati immagine non riconosciuti direttamente a ImageMagick, che dipendeva dalla stessa libheif vulnerabile. Claude Opus 4.8 ha passato più sessioni a cercare di trasformare la teoria in un exploit funzionante senza riuscire a superare l'address space layout randomization. I ricercatori hanno accantonato il tentativo.

Poi, la sera del 24 luglio, Anthropic ha rilasciato Claude Opus 5. Il team ha dato al nuovo modello lo stesso problema. Entro tre ore aveva un exploit ARM64 funzionante per un Mac locale, poi lo ha portato da solo sull'ambiente di produzione x86-64 e jemalloc di Discourse. Alle 06:00 UTC del 25 luglio l'exploit funzionava contro un bersaglio locale. Alle 10:00 UTC funzionava contro il forum live di OpenAI.

Il Bug Che Nessuno Doveva Davvero Correggere

Il difetto di libheif non era una scoperta. Era già stato corretto a monte, in silenzio, senza che gli venisse assegnato un numero CVE. Nessun CVE significava nessun avviso al team di sicurezza di Debian, così Debian 12, l'immagine base di Discourse, non ha mai recepito la correzione. Discourse ha ereditato il difetto tramite ImageMagick. Il forum di OpenAI lo ha ereditato tramite Discourse. Tre organizzazioni, tre decisioni separate di non agire, nessuna sbagliata di per sé.

La violazione del forum da sola sarebbe rimasta contenuta. Ciò che l'ha trasformata in un incidente OpenAI è stato un single sign-on che collegava il forum agli account ChatGPT e Codex dei dipendenti. Compromettere un account del forum ha dato ai ricercatori una sessione che arrivava fino a Codex. Codex era collegato a GitHub. GitHub ospitava il monorepository openai/openai. Nove componenti, nove team distinti, un percorso continuo da una libreria fotografica non corretta fino al codice sorgente.

Quanto Velocemente Si È Davvero Chiusa la Catena

Hacktron ha pubblicato la propria cronologia al minuto. Messa in fila, la distanza tra un modello che non riusciva a finire il lavoro e un modello che ha attraversato direttamente il confine di identità di OpenAI è stata pari a un solo rilascio di prodotto.

Ora (UTC)EventoAttore
23 lug, 05:00-06:00Overflow in libheif identificato; Opus 4.8 non produce un exploit affidabileUmano + Opus 4.8
24 lug, seraClaude Opus 5 rilasciato; riceve lo stesso obiettivoAnthropic
25 lug, 06:00Exploit ARM64 funzionante confermato su un Mac localeOpus 5
25 lug, 10:00Esecuzione di codice remoto raggiunta su Discourse Cloud, letto /etc/hostsOpus 5, guidato da umani
25 lug, 13:30-15:30Account di un dipendente su ChatGPT e Codex raggiunto; accesso dimostrato, test interrottiRicercatori umani
25 lug, 22:49OpenAI conferma la correzione distribuitaOpenAI
1 setOpenAI paga una bounty di 6.500 dollari solo per la scoperta SSOOpenAI

La costruzione dell'exploit in tre ore è il titolo. La parte su cui vale la pena soffermarsi sono le 22 ore e 49 minuti tra il momento in cui i ricercatori hanno raggiunto un account dipendente e quello in cui OpenAI ha confermato la correzione. Quello è stato il vero tempo di risposta messo alla prova dalla catena. Ha retto.

Perché Conta per Ogni Operatore nell'UE, Non Solo per i Laboratori di IA

La conclusione di Hacktron è netta: la sicurezza si è a lungo appoggiata alla complessità come fossato, sull'idea che sviluppare un exploit richieda un team ben finanziato e mesi di tempo. Proprio quel fossato è ciò che Opus 5 ha eliminato su questo bug. I ricercatori hanno scritto che un lavoro che un tempo richiedeva competenze specialistiche scarse può ora essere compresso in potenza di calcolo. Hanno aggiunto che il salto da Opus 5 al modello successivo era già visibile nei loro test.

Per un'azienda soggetta a NIS2, questa compressione ricade sull'orologio, non solo sul budget. Le entità essenziali e importanti devono segnalare un incidente significativo entro 24 ore da quando ne vengono a conoscenza e presentare una relazione completa entro 72 ore. La catena di Hacktron, dall'exploit funzionante al repository interno compromesso, si è chiusa proprio dentro quella finestra di 72 ore. L'orologio della notifica e quello dell'attaccante non corrono più a velocità diverse. Un processo di rilevamento pensato in giorni, non in ore, è costruito per l'avversario sbagliato.

In Sintesi

Nessuno in questa storia ha agito in modo imprudente. OpenAI gestiva un programma bug bounty e ha pagato entro pochi giorni. Hacktron ha divulgato responsabilmente e si è fermato nel momento in cui l'accesso è stato dimostrato. Discourse ha rilasciato una correzione entro 48 ore dalla segnalazione. Il sistema ha funzionato esattamente come previsto. Un modello di IA ha comunque raggiunto il codice sorgente di un laboratorio di IA di punta partendo da un bug di caricamento foto già corretto altrove in rete.

Le condizioni stesse del programma di OpenAI escludevano i test contro Discourse in quanto tale, per cui il pagamento di 6.500 dollari ha coperto solo il difetto del confine di identità, non l'exploit che ha aperto la porta ai ricercatori. Quella distanza tra ciò che copre un programma bounty e ciò di cui un attaccante ha davvero bisogno merita un audit a sé, assistito da un modello o no.