Python Software Foundation har offentliggjort informasjon om en kritisk sårbarhet i API-et for styring av utgivelser, som kunne bli brukt til å angripe infrastrukturen til Python-prosjektet. Sårbarheten tillot omgåelse av autentiseringssystemet og tilknytning til API-et for styring av utgivelser med administratorrettigheter ved å sende en forespørsel med hvilken som helst nøkkel og spesifisere en av administratorene i brukernavnsfeltet.
Rettighetene som ble oppnådd ved vellykket utnyttelse av sårbarheten, ga angriperen mulighet til å endre lenkene til Python-utgivelsene og metadataene for verifisering av riktigheten til de lastede filene som ble plassert på siden python.org/downloads. Samtidig tillot ikke sårbarheten endringer i innholdet til de eksisterende filene med utgivelsene.
Revisjonen av databasen og loggene avdekket ingen spor av sårbarhetsutnyttelse. Det antas også at endringene av lenkene til utgivelser ikke kunne ha gått ubemerket hen, ettersom mange leverandører ved lasting i tillegg bruker et system for kryptografisk verifisering av kode, Sigstore, samt en sjekk ved hjelp av PGP-nøkler.
Sårbarheten har vært til stede i koden siden 2014 og var forårsaket av blanding av gjesteinnloggingbehandlere og autentisering med nøkler for API-et i én kode. Ved et feilslått autentisering med tilgangsnøkkel for API-et, ble det i koden utført en tilbakeføring til bruk av gjestetilgang.
Sårbarheten ble oppdaget 23. februar og ble rettet dagen etter, hvoretter det ble gjennomført flere integritetskontroller av infrastrukturen: 25. februar ble loggene og sikkerhetskopiene av databasen analysert, alle tilgjengelige ressurser for nedlasting ble verifisert med digitale signaturer fra Sigstore-loggen og PGP-nøklene, og det ble utført en intern revisjon av kodebasen til de brukte tjenestene. 23. april ble kodebasen ytterligere sjekket ved hjelp av AI-verktøy, og 1. juni ble firmaet Trail of Bits engasjert for ekstern revisjon av infrastrukturen til python.org og prosessene for oppretting av Python-utgivelser.
Kilde: opennet.ru
