Forskere fra JFrog opdagede et token inkluderet i Docker-billedet "cabotage-app", der giver administrativ adgang til Python-, PyPI- og Python Software Foundation-lagrene på GitHub. Tokenet blev fundet i den binære fil "__pycache__/build.cpython-311.pyc" med den kompilerede bytekode cachelagret.

Ifølge repræsentanter for PyPI-depotet blev tokenet oprettet i 2023 for udvikleren ewdurbin (Ee Durbin), som har stillingen som infrastrukturdirektør hos Python Software Foundation. Tokenet gav administrativ adgang til alle arkiver og organisationer i projektet, inklusive alle arkiver i pypi-, python-, psf- og pypa-organisationerne. Det problematiske Docker-billede med tokenet blev offentliggjort i Docker Hub-biblioteket den 2023. marts 11 og slettet den 2024. juni 16, dvs. 28 måneder i det offentlige domæne. Den XNUMX. juni blev token tilbagekaldt.
Det er bemærkelsesværdigt, at der i de tilgængelige kildetekster, på grundlag af hvilke den problematiske bytekodefil blev genereret, ikke nævnes tokenet. Kodens forfatter forklarede, at han i processen med at udvikle cabotage-app5-værktøjssættet på sit lokale system stødte på restriktioner på intensiteten af adgang til GitHub API'et, når han udførte funktionen med automatisk download af filer fra GitHub og for at omgå grænserne sat for anonyme opkald til GitHub, tilføjede han midlertidigt sit arbejdstoken i koden. Inden udgivelsen af den skrevne kode blev tokenet slettet, men udvikleren tog ikke højde for, at omtalen af tokenet var cachelagret i en prækompileret fil med bytekode, som så endte i docker-billedet. def _fetch_github_file( — github_repository=”ejer/repo”, ref=”main”, access_token=Ingen, filnavn=”Dockerfile” + github_repository=”ejer/repo”, + ref=”main”, + access_token=”0d6a9bb5caf126a73350af”, + filnavn = "Dockerfile", ):
En revision af aktivitet i repositories på GitHub udført af Python-udviklere afslørede ikke tredjeparts adgangsforsøg ved hjælp af det afslørede token. I betragtning af, at GitHub har været den primære platform for CPython-udvikling siden 2017, kan det, hvis tokenet faldt i hænderne på en angriber, føre til et fuldstændigt kompromittering af den infrastruktur, der bruges til Python-udvikling og PyPI-lageret, og muligheden for at forsøge at integrere bagdøre i CPython og PyPI-pakkehåndteringen.
Hændelsen viser vigtigheden af at analysere lækager ikke kun i kildekode, konfigurationsfiler og miljøvariabler, men også i binære filer. I forbindelse med Python rådes brugere også til at være opmærksomme på tilstedeværelsen af pyc-filer med kompileret bytekode i de downloadede projekter, da disse filer kan indeholde skjulte ændringer, der ikke er til stede i kildekoden.
Kilde: opennet.ru
