Token-Leck fĂŒr den vollstĂ€ndigen Zugriff auf die GitHub-Repositories des Python-Projekts

Forscher von JFrog haben in einem Docker-Image namens „cabotage-app“ ein Token gefunden, das Administratorrechte fĂŒr die Repositories von Python, PyPI und der Python Software Foundation auf GitHub gewĂ€hrt. Das Token wurde in der BinĂ€rdatei „__pycache__/build.cpython-311.pyc“ mit dem zwischengespeicherten, vorkompilierten Bytecode gefunden.

Token-Leck fĂŒr den vollstĂ€ndigen Zugriff auf die GitHub-Repositories des Python-Projekts

Laut Angaben von Vertretern des PyPI-Repositorys wurde das Token 2023 fĂŒr den Entwickler ewdurbin (Ee Durbin) erstellt, der in der Organisation Python Software Foundation die Position des Direktors fĂŒr Infrastruktur innehat. Das Token gewĂ€hrte Administratorzugang zu allen Repositories und Organisationen des Projekts, einschließlich aller Repositories der Organisationen pypi, python, psf und pypa. Das problematische Docker-Image mit dem Token wurde am 3. MĂ€rz 2023 im Docker Hub veröffentlicht und am 11. Juni 2024 entfernt, d.h. es war 16 Monate lang öffentlich zugĂ€nglich. Am 28. Juni wurde das Token zurĂŒckgezogen.

Bemerkenswert ist, dass in den zugĂ€nglichen Quelltexten, auf deren Basis die problematische Datei mit Bytecode generiert wurde, keine ErwĂ€hnung des Tokens vorkommt. Der Autor des Codes erklĂ€rte, dass er wĂ€hrend der Entwicklung des Tools cabotage-app5 in seinem lokalen System auf BeschrĂ€nkungen der ZugriffshĂ€ufigkeit auf die GitHub-API gestoßen sei. Um die fĂŒr anonyme Anfragen an GitHub vorgesehenen Limits zu umgehen, habe er vorĂŒbergehend sein Arbeits-Token in den Code integriert. Vor der Veröffentlichung des Codes wurde das Token entfernt, jedoch berĂŒcksichtigte der Entwickler nicht, dass die ErwĂ€hnung des Tokens im vorkompilierten Bytecode-File zwischengespeichert wurde, das dann in das Docker-Image gelangte. 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“, ):

Eine von den Entwicklern von Python durchgefĂŒhrte PrĂŒfung der AktivitĂ€ten in den GitHub-Repositories ergab keine externen Zugriffsversuche mithilfe des offengelegten Tokens. Angesichts der Tatsache, dass GitHub seit 2017 die primĂ€re Plattform fĂŒr die Entwicklung von CPython ist, hĂ€tte das Eindringen des Tokens in die HĂ€nde eines Angreifers zu einer vollstĂ€ndigen Kompromittierung der Infrastruktur fĂŒhren können, die zur Entwicklung von Python und dem PyPI-Repository verwendet wird, sowie zu Versuchen, Backdoors in CPython und den Paketmanager PyPI zu integrieren.

Der Vorfall zeigt die Bedeutung der Analyse von Lecks nicht nur im Quellcode, in Konfigurationsdateien und Umgebungsvariablen, sondern auch in BinĂ€rdateien. Im Kontext von Python wird den Nutzern ebenfalls geraten, auf das Vorhandensein von pyc-Dateien mit kompiliertem Bytecode in den heruntergeladenen Projekten zu achten, da diese Dateien versteckte Änderungen enthalten können, die im Quellcode fehlen.

Quelle: opennet.ru

60GB SSD 8Gb DDR4