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) | Evento | Attore |
|---|---|---|
| 23 lug, 05:00-06:00 | Overflow in libheif identificato; Opus 4.8 non produce un exploit affidabile | Umano + Opus 4.8 |
| 24 lug, sera | Claude Opus 5 rilasciato; riceve lo stesso obiettivo | Anthropic |
| 25 lug, 06:00 | Exploit ARM64 funzionante confermato su un Mac locale | Opus 5 |
| 25 lug, 10:00 | Esecuzione di codice remoto raggiunta su Discourse Cloud, letto /etc/hosts | Opus 5, guidato da umani |
| 25 lug, 13:30-15:30 | Account di un dipendente su ChatGPT e Codex raggiunto; accesso dimostrato, test interrotti | Ricercatori umani |
| 25 lug, 22:49 | OpenAI conferma la correzione distribuita | OpenAI |
| 1 set | OpenAI paga una bounty di 6.500 dollari solo per la scoperta SSO | OpenAI |
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.
Da leggere ora: Il vostro modello di minaccia NIS2 puntava sull'attaccante sbagliato | I migliori strumenti di IA per l'hacking sono ora solo su invito



