News · OpenAI ruota il certificato di firma macOS dopo che una build compromessa di Axios è finita nella sua pipeline di firma delle app

Jun, 224 min di lettura
Frontend

OpenAI ruota il certificato di firma macOS dopo che una build compromessa di Axios è finita nella sua pipeline di firma delle app

Una dipendenza JavaScript compromessa ha raggiunto il workflow che certifica ChatGPT Desktop, Codex e Atlas — e la soluzione è un aggiornamento client obbligatorio prima dell'8 maggio 2026.

Una libreria HTTP frontend finita dentro il job di code-signing

Axios è uno dei client HTTP più utilizzati nell'ecosistema JavaScript — il tipo di dipendenza che si annida silenziosamente nell'albero transitivo di innumerevoli progetti frontend e di tooling Node. Il 31 marzo 2026 (UTC) è stata pubblicata una versione malevola, la 1.14.1, come parte di un attacco più ampio alla supply chain.

Ciò che rende specifica la divulgazione di OpenAI è dove quella libreria era in esecuzione. La build compromessa di Axios è stata scaricata ed eseguita da un workflow GitHub Actions usato nel processo di firma delle app macOS di OpenAI — lo stesso job che aveva accesso al certificato e al materiale di notarizzazione per ChatGPT Desktop, Codex, Codex CLI e Atlas. Un package JavaScript pensato per fare richieste web si è trovato adiacente alle chiavi che dicono a macOS che queste app provengono davvero da OpenAI.

La lezione scomoda è che una pipeline di firma è affidabile solo quanto ogni singolo package che installa in fase di build. Il certificato è il gioiello della corona; il workflow che lo circonda ha ereditato la superficie di rischio dell'intero grafo di dipendenze npm.

Due errori di configurazione concreti individuati da OpenAI

OpenAI è insolitamente precisa sulla causa principale. Il workflow faceva riferimento all'azione incriminata tramite un tag non fissato invece di un hash di commit specifico, e non aveva un minimumReleaseAge configurato per i nuovi package.

L'azione in questione usava un tag mobile, invece di un hash di commit specifico, e non aveva un minimumReleaseAge configurato per i nuovi package.Montana Labs

Entrambi gli errori sono familiari a chiunque gestisca una CI. Un tag mobile significa che il workflow accetta silenziosamente qualunque cosa il maintainer — o un attaccante che ha compromesso il maintainer — decida di puntare a quel tag. Un minimumReleaseAge avrebbe imposto una finestra di quarantena, rifiutando package pubblicati troppo di recente per essere stati verificati; se fosse stato impostato, la versione malevola del 31 marzo forse non sarebbe mai stata scaricata. Non si tratta di difese esotiche: sono i consigli standard di hardening per fissare e ritardare gli aggiornamenti delle dipendenze, applicati qui a una pipeline il cui raggio d'impatto si è rivelato essere un certificato di firma.

Il rimedio scarica il costo sul client, non sul server

OpenAI ha concluso che il certificato probabilmente non è stato esfiltrato, citando il timing del payload, la sequenza di iniezione del certificato e altri fattori attenuanti. Non ha trovato prove di un uso improprio della notarizzazione, né modifiche non autorizzate al software pubblicato, né una compromissione dei dati utente o delle chiavi API. Eppure tratta comunque il certificato come compromesso e lo sta ruotando.

Questa decisione trasferisce il rimedio su ogni utente macOS. Le nuove build firmate con il certificato aggiornato vengono distribuite come le prime versioni supportate — ChatGPT Desktop 1.2026.051, Codex App 26.406.40811, Codex CLI 0.119.0 e Atlas 1.2026.84.2 — e dopo l'8 maggio 2026 le versioni più vecchie potrebbero smettere completamente di funzionare una volta revocato del tutto il vecchio certificato.

L'approccio graduale è deliberato. OpenAI ha già bloccato nuove notarizzazioni con il vecchio certificato, quindi un'app falsificata firmata con esso non passerebbe Gatekeeper per impostazione predefinita, a meno che un utente non aggiri manualmente le protezioni. La finestra di 30 giorni prima della revoca completa serve a dare tempo agli aggiornatori integrati nelle app di recuperare terreno, e OpenAI afferma che accelererà la revoca se rileva attività malevole durante quella finestra.

Cosa significa una pipeline di firma compromessa per i team che distribuiscono client desktop

La superficie visibile di questi prodotti è una finestra di chat e un editor di codice, ma l'ancora di fiducia è un certificato prodotto da un job di build. Questo incidente fa crollare la distinzione tra dipendenze frontend e sicurezza in produzione: un package installato per supportare il tooling si trovava nello stesso contesto di esecuzione del materiale di firma, e una release avvelenata ha costretto a una rotazione del certificato avvertita da ogni utente Mac di quattro app diverse.

Per chiunque gestisca pipeline simili, le lezioni applicabili sono quelle che OpenAI riconosce a proprio carico — fissare le action a hash di commit, imporre una quarantena basata sull'età della release per i nuovi package, e trattare il workflow che tocca le chiavi di firma come l'ambiente a più alto privilegio che gestisci, isolato dalle installazioni ordinarie delle dipendenze. La rotazione del certificato e l'aggiornamento client obbligatorio sono stati il recupero costoso; la prevenzione economica erano due righe di configurazione CI.

Find this story relevant to you?

Contact us to find a unique solution

Contact us

Cerchi un partner di ingegneria AI capace di costruire davvero?

Aiutiamo le aziende a integrare l AI nei prodotti, automatizzare i flussi di lavoro ad alto valore e modernizzare i sistemi software che sostengono la crescita.

Get in touch

Letture correlate

Altre analisi su delivery di prodotto, IA operativa e il lavoro sui sistemi che fa reggere il deployment alla prova dei fatti.

Jul, 134 min di lettura
Frontend

DNP ha messo ChatGPT Enterprise davanti a dieci dipartimenti e ha trattato la finestra di chat come interfaccia

Jul, 134 min di lettura
Frontend

AdventHealth distribuisce ChatGPT in nove stati trattando l'adozione come il vero prodotto

Jul, 134 min di lettura
Frontend

AP+ usa Codex per costruire prototipi di pagamento che si comportano come il sistema reale, non solo schermate cliccabili