Pētnieki no uzņēmuma JFrog atklāja Docker attēlā "cabotage-app" tokenu, kas sniedz administratīvas tiesības piekļuvei Python, PyPI un Python Software Foundation reposituāriem GitHub. Token tika atrasts binārajā failā "__pycache__/build.cpython-311.pyc" ar kešēto kompilēto bytecode.

Saskaņā ar PyPI reposituāra pārstāvju ziņojumu, tokens tika izveidots 2023. gadā izstrādātājam ewdurbin (Ee Durbin), kurš ieņem infrastruktūras direktora amatu Python Software Foundation. Token nodrošināja administratīvu piekļuvi visiem projekta reposituāriem un organizācijām, tostarp visiem pypi, python, psf un pypa organizāciju reposituāriem. Problēmas Docker attēls ar tokenu tika publicēts Docker Hub katalogā 2023. gada 3. martā un tika dzēsts 2024. gada 11. jūnijā, t.i., 16 mēnešus tas bija pieejams publiski. Token tika atsaukts 2023. gada 28. jūnijā.
Pamanāmi, ka pieejamajos avota tekstos, uz kuru bāzes tika ģenerēts problēmu faila bytecode, nav minēts token. Koda autors paskaidroja, ka, izstrādājot rīku cabotage-app5 uz savas lokālās sistēmas, viņš saskārās ar GitHub API piekļuves intensitātes ierobežojumiem automatizētā failu augšupielādē, un lai apietu ierobežojumus, kas noteikti anonīmām piekļuves pieprasījumiem uz GitHub, viņš pagaidu pievienoja savu darba token kodā. Pirms publicēšanas uzrakstītais kods tika izdzēsts token, taču izstrādātājs neņem vērā, ka tokena pieminējums tika kešēts kompilētajā failā ar bytecode, kas pēc tam nonāca docker attēlā.
Izstrādātāju veiktā Python aktivitātes audita analīze GitHub reposituāros neuzrādīja nekādas ārējās piekļuves mēģinājumus, izmantojot atklāto token. Ņemot vērā to, ka kopš 2017. gada GitHub ir primārā platforma CPython izstrādei, tokena nonākšana ļaunprātīgo personu rokās varētu radīt pilnīgu infrastruktūras kompromitāciju, kas tiek izmantota Python un PyPI reposituāra izstrādē, kā arī ļautu mēģinājumiem integrēt backdoor CPython un paketņu pārvaldniekā PyPI.
Incidents demonstrate the importance of analyzing leaks not only in source code, configuration files, and environment variables, but also in binary files. In the context of Python, users are also advised to pay attention to the presence of pyc files with compiled bytecode in downloaded projects, as these files may contain hidden modifications that are absent in the source code.
Avots: opennet.lv
