Изследователи от компания JFrog откриха в състава на Docker образа „cabotage-app“ токен, предоставящ достъп с права на администратора до хранилищата Python, PyPI и Python Software Foundation в GitHub. Токенът беше намерен в бинарния файл „__pycache__/build.cpython-311.pyc“ с прокеширан компилиран байткод.

Според представителите на хранилището PyPI токенът е създаден през 2023 година за разработчика ewdurbin (Ee Durbin), който заема поста директор по инфраструктурата в организацията Python Software Foundation. Токенът е предлагал достъп с права на администратора до всички хранилища и организации на проекта, включително всичките хранилища на организациите pypi, python, psf и pypa. Проблемният Docker образ с токена е публикуван в каталога Docker Hub на трети март 2023 година и е премахнат на 11 юни 2024 година, т.е. е бил в отворен достъп 16 месеца. На 28 юни токенът е бил отзован.
Забележително е, че в достъпните изходни текстове, на базата на които е генериран проблемният файл с байткод, споменаването на токена отсъства. Авторът на кода обясни, че по време на разработването на инструмента cabotage-app5 на своята локална система е срещнал ограничения на интензивността на достъпа до API GitHub при изпълнение на функцията за автоматизирано качване на файлове от GitHub и за да заобиколи лимитите, наложени за анонимни запитвания към GitHub, временно е добавил своя работен токен в кода. Преди публикуването на написания код токенът е бил премахнат, но разработчикът не е взел предвид, че споменаването на токена е прокеширано в предкомпилирания файл с байткода, който след това е попаднал в docker образа. 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“, ):
Проведеният от разработчиците на Python одит на активността в хранилищата на GitHub не установи странични опити за достъп, използващи разкрития токен. С оглед на факта, че от 2017 година GitHub е основната платформа за разработка на CPython, попадането на токена в ръцете на злонамерени лица би могло да доведе до пълна компрометация на инфраструктурата, използвана за разработка на Python и хранилището PyPI, както и до възможността за опити за интегриране на бекдора в CPython и пакетния мениджър PyPI.
Инцидентът подчертава важността на анализа на течовете не само в изходния код, конфигурационните файлове и променливите на средата, но и в бинарните файлове. В контекста на Python потребителите също трябва да обръщат внимание на наличието на pyc файлове с компилиран байткод в изтеглените проекти, тъй като тези файлове могат да съдържат скрити модификации, които липсват в изходния код.
Източник: opennet.ru
