Forskere fra JFrog har opdaget en token i Docker-billedet "cabotage-app", der giver adgang med administratorrettigheder til Python-repositorier, PyPI og Python Software Foundation på GitHub. Tokenet blev fundet i den binære fil "__pycache__/build.cpython-311.pyc" med cachet kompileret bytecode.

Ifølge repræsentanter fra PyPI-repositoriet blev tokenet oprettet i 2023 for udvikleren ewdurbin (Ee Durbin), der er direktør for infrastruktur i Python Software Foundation. Tokenet gav administratoradgang til alle repositoryer og organisationer i projektet, herunder alle repositories fra organisationerne pypi, python, psf og pypa. Det problematiske Docker-billede med tokenet blev offentliggjort i Docker Hub-kataloget den 3. marts 2023 og blev slettet den 11. juni 2024, hvilket betyder, at det var tilgængeligt i 16 måneder. Tokenet blev tilbagekaldt den 28. juni.
Det er bemærkelsesværdigt, at der i de tilgængelige kildekoder, som det problematiske bytecode-fil er genereret fra, ikke er noget nævnt om tokenet. Kodauthoren forklarede, at han i udviklingen af værktøjet cabotage-app5 på sit lokale system stødte på grænser for API-adgangshastigheden på GitHub, og for at omgå de grænser, der blev pålagt anonyme anmodninger til GitHub, midlertidigt tilføjede hans arbejds-token i koden. Før offentliggørelsen af den skrevne kode blev tokenet fjernet, men udvikleren tog ikke højde for, at nævnelsen af tokenet blev cachet i den forkompilerede bytecode-fil, som derefter blev inkluderet i Docker-billedet. def _fetch_github_file( — github_repository=“owner/repo”, ref=“main”, access_token=None, filename=“Dockerfile” + github_repository=“owner/repo”, + ref=“main”, + access_token=“0d6a9bb5af126f73350a2afc058492765446aaad”, + filename=“Dockerfile”, ):
En revision af aktiviteten i repositories på GitHub foretaget af Python-udviklerne afslørede ikke eksterne forsøg på adgang ved brug af det afslørede token. Da GitHub siden 2017 har været den primære platform for udviklingen af CPython, kunne en adgang til tokenet af en ondsindet aktør føre til en total kompromittering af infrastrukturen, der bruges til udvikling af Python og PyPI-repositoriet, samt muligheden for at forsøge at integrere backdoors i CPython og pakkehåndteringssystemet PyPI.
Hændelsen viser vigtigheden af at analysere lækager ikke kun i kildekoden, konfigurationsfiler og miljøvariabler, men også i binære filer. I konteksten af Python anbefales brugere også at være opmærksomme på tilstedeværelsen af pyc-filer med kompileret bytecode i de downloadede projekter, da disse filer kan indeholde skjulte ændringer, som ikke findes i kildekoden.
Kilde: opennet.ru
