Raziskovalci podjetja JFrog so v Docker sliki 'cabotage-app' odkrili žeton, ki omogoča dostop z administrativnimi pravicami do repozitorijev Python, PyPI in Python Software Foundation na GitHubu. Žeton je bil najden v binarni datoteki '__pycache__/build.cpython-311.pyc' s predpomnjenim skompiliranim bajtkodom.

Po navedbah predstavnikov repozitorija PyPI je bil žeton ustvarjen leta 2023 za razvijalca ewdurbin (Ee Durbin), ki zaseda mesto direktorja za infrastrukturo v organizaciji Python Software Foundation. Žeton je omogočal dostop z administrativnimi pravicami do vseh repozitorijev in organizacij projekta, vključno z vsemi repozitoriji organizacij pypi, python, psf in pypa. Sporná Docker slika z žetonom je bila objavljena v katalogu Docker Hub 3. marca 2023 in odstranjena 11. junija 2024, torej je bila 16 mesecev javno dostopna. Žeton je bil umaknjen 28. junija.
Zanimivo je, da v razpoložljivih izvornih besedilih, na osnovi katerih je bila ustvarjena sporna datoteka z bajtkodom, ni omembe žetona. Avtor kode je pojasnil, da se je med razvojem orodja cabotage-app5 na svojem lokalnem sistemu srečal z omejitvami intenzivnosti dostopa do API-ja GitHub pri izvajanju funkcije avtomatiziranega nalaganja datotek iz GitHuba, in da bi obšel omejitve, ki so bile postavljene za anonimne poizvedbe na GitHubu, je začasno dodal svoj delovni žeton v kodo. Pred objavo napisane kode je bil žeton odstranjen, a razvijalec ni upošteval, da je omemba žetona ostala v predkompiliirani datoteki z bajtkodom, ki je nato prišla v docker sliko. 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', ):
Izvedeni auditi razvijalcev Python glede aktivnosti v repozitorijih na GitHubu niso razkrili morebitnih zunanjih poskusov dostopa z uporabo odkritega žetona. Glede na to, da je GitHub od leta 2017 primarna platforma za razvoj CPython, bi dostop do žetona z roke zlonamerne osebe lahko povzročil popolno kompromitacijo infrastrukture, ki se uporablja za razvoj Python in repozitorija PyPI, ter možnosti poskusa integracije backdoor-ov v CPython in upravitelja paketov PyPI.
Incident pokazuje važnost analize curenja ne samo u izvor kodu, datotekama konfiguracije i varijablama okruženja, već i u binarnim datotekama. U kontekstu Pythona, korisnicima se također preporučuje da obrate pažnju na prisutnost pyc datoteka sa kompajliranom bajtkodom u preuzetim projektima, jer ove datoteke mogu sadržavati skrivene modifikacije koje nedostaju u izvor kodu.
Izvor: opennet.ru
