Fundacja Python Software Foundation ujawniła informacje o krytycznej podatności w API do zarządzania wersjami, która mogła być wykorzystana do ataku na infrastrukturę projektu Python. Podatność pozwalała na obejście systemu uwierzytelniania i połączenie się z API zarządzania wersjami z uprawnieniami administratora poprzez wysłanie żądania z dowolnym kluczem i wskazanie jednego z administratorów w polu nazwy użytkownika.
Uzyskane w przypadku udanego wykorzystania podatności uprawnienia dawały atakującemu możliwość wprowadzenia zmian w linkach do wersji Python oraz metadanych do weryfikacji poprawności pobieranych plików, umieszczonych na stronie python.org/downloads. Podatność nie pozwalała jednak na zmianę zawartości istniejących plików z wersjami.
Audyt bazy danych i logów nie ujawnił śladów wykorzystania podatności. Również zakłada się, że podmiana linków do wersji nie mogła pozostać niezauważona, ponieważ wielu dostawców przy pobieraniu dodatkowo korzysta z systemu kryptograficznej weryfikacji kodu Sigstore oraz weryfikacji przy użyciu kluczy PGP.
Podatność istniała w kodzie od 2014 roku i wynikała ze zmieszania w jednym kodzie obsługi gościnnych logowania i uwierzytelnienia za pomocą kluczy dla API. W przypadku awarii uwierzytelnienia za pomocą klucza, kod wykonywał przejście na użycie dostępu gościnnego.
Podatność została zidentyfikowana 23 lutego i usunięta następnego dnia, po czym przeprowadzono kilka kontroli integralności infrastruktury: 25 lutego analizowane były logi i kopie zapasowe bazy danych, wszystkie dostępne do pobrania zasoby zostały sprawdzone przy użyciu podpisów cyfrowych z logu Sigstore oraz kluczy PGP, a samodzielnie przeprowadzono audyt bazy kodu używanych usług. 23 kwietnia baza kodu została dodatkowo sprawdzona przy użyciu narzędzi AI, a 1 czerwca do zewnętrznego audytu infrastruktury python.org i procesów tworzenia wersji Python zaproszono firmę Trail of Bits.
Źródło: opennet.ru
