Onderzoekers van JFrog hebben in de Docker-image 'cabotage-app' een token ontdekt dat toegang verleent met beheerdersrechten tot de Python-, PyPI- en Python Software Foundation-repositories op GitHub. De token werd gevonden in het binaire bestand '__pycache__/build.cpython-311.pyc' met gecached, gecompileerde bytecode.

Volgens vertegenwoordigers van de PyPI-repository werd de token in 2023 aangemaakt voor ontwikkelaar ewdurbin (Ee Durbin), die als directeur infrastructuur werkzaam is bij de Python Software Foundation. De token verleende beheerdersrechten tot alle repositories en organisaties van het project, inclusief alle repositories van de organisaties pypi, python, psf en pypa. De problematische Docker-image met de token werd op 3 maart 2023 gepubliceerd in de Docker Hub-directory en werd op 11 juni 2024 verwijderd, oftewel 16 maanden was deze openbaar toegankelijk. De token werd op 28 juni ingetrokken.
Opmerkelijk is dat in de beschikbare bronbestanden, waaruit het problematische bytecode-bestand is gegenereerd, geen vermelding van de token voorkomt. De auteur van de code legt uit dat hij tijdens het ontwikkelen van de cabotage-app5-tool op zijn lokale systeem stuitte op beperkingen van de toegang tot de GitHub API bij het uitvoeren van een functie voor automatische bestandsuploads van GitHub. Om de limieten voor anonieme verzoeken aan GitHub te omzeilen, voegde hij tijdelijk zijn werk-token aan de code toe. Voor de publicatie van de geschreven code werd de token verwijderd, maar de ontwikkelaar had niet in de gaten dat de vermelding van de token was gecached in het voorgecompileerde bytecode-bestand, dat vervolgens in de docker-image terechtkwam.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", ):
Een audit van de activiteit in de repositories op GitHub door de ontwikkelaars van Python heeft geen pogingen tot ongeautoriseerde toegang met de openbaar gemaakte token aangetoond. Aangezien GitHub sinds 2017 het primaire platform is voor de ontwikkeling van CPython, had de token in handen van kwaadwillenden kunnen leiden tot een volledige compromittering van de infrastructuur die wordt gebruikt voor de ontwikkeling van Python en de PyPI-repository, en tot pogingen om backdoors in CPython en de package manager PyPI te integreren.
Het incident benadrukt het belang van het analyseren van lekken, niet alleen in de broncode, configuratiebestanden en omgevingsvariabelen, maar ook in binaire bestanden. In de context van Python wordt gebruikers ook aangeraden om acht te slaan op de aanwezigheid van pyc-bestanden met gecompileerde bytecode in geladen projecten, aangezien deze bestanden verborgen wijzigingen kunnen bevatten die ontbreken in de broncode.
Bron: opennet.ru
