La bonifica emSign arriva a Python: aggiornare il browser non basta
pip, uv, certifi e gli ambienti virtuali possono usare archivi di certificati separati. Le versioni corrette devono raggiungere i client che scaricano le dipendenze.
Aggiornare il browser non completa la rimozione della fiducia nei certificati eMudhra compromessi. Il gruppo di sicurezza di Python invita ora gli sviluppatori ad aggiornare strumenti di gestione dei pacchetti e raccolte di certificati, comprese le copie negli ambienti virtuali già esistenti. Il rischio pratico riguarda il software che scarica le dipendenze, oltre alla finestra in cui si legge l'avviso.
L'avviso Python segue la compromissione di chiavi di autorità di certificazione associate agli intermedi emSign. Raccomanda certifi 2026.10.19, pip 26.2.2, uv 0.13.4 e sigstore 4.5.1 o versioni successive, oltre alla ricostruzione delle immagini dei container con certificati di sistema aggiornati. Sono pacchetti separati: aggiornarne uno non dimostra che siano aggiornati anche gli altri.
L'archivio di fiducia che il browser non controlla
Un certificato TLS aiuta il client a stabilire se sta parlando con il server previsto. Questa decisione dipende, in ultima istanza, dalle autorità considerate affidabili. Se la chiave di firma di un'autorità viene compromessa, un attaccante può creare credenziali che un client vulnerabile potrebbe accettare. La cifratura può continuare a funzionare mentre il controllo dell'identità è sbagliato.
L'avviso di sicurezza di certifi spiega che la versione d'emergenza rimuove le radici emSign associate agli intermedi revocati e compromessi. La prima versione corretta è 2026.10.18; le successive indicazioni Python raccomandano 2026.10.19 per conservare la compatibilità con le radici non coinvolte. La distinzione conta per chi aveva già reagito al primo avviso.
Questo non significa che ogni connessione cifrata sia stata intercettata. Un'autorità compromessa consente l'impersonificazione in uno scenario d'attacco adeguato; non dimostra che uno specifico pacchetto scaricato sia stato alterato. La risposta consiste nel rimuovere la fiducia interessata e aggiornare i client che vi fanno affidamento.
Il nostro articolo sull'aggiornamento d'emergenza di Firefox riguardava la risposta del browser. Le applicazioni Python possono portare con sé elenchi di certificati propri: quella protezione non segue automaticamente lo sviluppatore nel terminale o in un container di compilazione.
pip e uv richiedono controlli diversi
Nella discussione dell'avviso, lo sviluppatore CPython Christian Heimes aggiunge un dettaglio importante: pip carica i certificati certifi incorporati insieme alla fiducia del sistema. Aggiornare soltanto il sistema operativo non rimuove quindi in modo affidabile la fiducia compromessa da una vecchia installazione di pip. L'indicazione è aggiornare pip stesso, anche negli ambienti esistenti.
L'avviso di Astral per uv descrive una raccolta predefinita diversa e identifica 0.13.4 come versione corretta. Chi usa esplicitamente certificati di sistema o personalizzati deve verificare che anche tali archivi non si fidino più delle radici o degli intermedi coinvolti. Una configurazione personalizzata non è intrinsecamente più sicura: trasferisce la responsabilità di mantenere aggiornato l'elenco.
Per un gruppo di sviluppo, un inventario è quindi più utile di un solo comando riuscito. Lo strumento sul portatile, la copia nell'ambiente del progetto e quella nell'immagine di integrazione continua possono essere installazioni diverse. Controllate le versioni effettivamente usate dal processo, poi ricostruite e ridistribuite le immagini interessate. Modificare soltanto la ricetta della prossima immagine lascia intatte le copie già in esecuzione.
Un avviso non giustifica la disattivazione della verifica
Le modifiche agli archivi possono anche far emergere servizi legittimi che devono correggere la propria catena di certificati. Disattivare la verifica per ripristinare un download eliminerebbe proprio il controllo d'identità che l'aggiornamento vuole proteggere. Occorre esaminare la catena e seguire le indicazioni aggiornate del progetto interessato.
La lezione per lo sviluppo software è concreta: in una macchina la fiducia può invecchiare in più posti. La bonifica è completa soltanto quando il software che stabilisce la connessione ha smesso di fidarsi dell'autorità compromessa.