La Python Software Foundation ha rivelato una vulnerabilità critica nell'API per la gestione delle versioni, che poteva essere sfruttata per attaccare l'infrastruttura del progetto Python. La vulnerabilità consentiva di superare il sistema di autenticazione e di accedere all'API per la gestione delle versioni con diritti di amministratore inviando una richiesta con qualsiasi chiave e specificando uno degli amministratori nel campo del nome utente.
I diritti ottenuti in caso di sfruttamento con successo della vulnerabilità davano all'attaccante la possibilità di modificare i link alle versioni di Python e i metadati per la verifica della correttezza dei file caricati, pubblicati sulla pagina python.org/downloads. Tuttavia, la vulnerabilità non permetteva di modificare il contenuto dei file con le versioni esistenti.
L'audit del database e dei log non ha rivelato segni di sfruttamento della vulnerabilità. Si ritiene inoltre che la sostituzione dei link alle release non sia passata inosservata, dal momento che molti fornitori utilizzano un sistema di verifica crittografica del codice Sigstore e controlli con chiavi PGP durante il caricamento.
La vulnerabilità era presente nel codice dal 2014 ed era causata dalla mescolanza in un unico codice dei gestori per accessi ospiti e autenticazione via chiave per API. In caso di fallimento dell'autenticazione tramite chiave d'accesso all'API, il codice eseguiva un rollback per utilizzare l'accesso ospite.
La vulnerabilità è stata identificata il 23 febbraio ed è stata risolta il giorno successivo. Sono state effettuate diverse verifiche dell'integrità dell'infrastruttura: il 25 febbraio sono stati analizzati i log e i backup del database, tutte le risorse disponibili per il download sono state verificate utilizzando le firme digitali dai log di Sigstore e le chiavi PGP, e si è svolta un'audit della base di codice dei servizi utilizzati. Il 23 aprile la base di codice è stata ulteriormente esaminata con strumenti AI e il 1 giugno è stata coinvolta l'azienda Trail of Bits per un audit esterno dell'infrastruttura di python.org e dei processi di rilascio di Python.
Fonte: opennet.ru
