Главная | IT | Подмена зависимости в Python-библиотеке, насчитывающей 40 млн загрузок в месяц

Подмена зависимости в Python-библиотеке, насчитывающей 40 млн загрузок в месяц

В библиотеке Python JSON Logger выявлена уязвимость (CVE-2025-27607) дающая возможность подменить зависимость при установке через каталог PyPI и добиться выполнения своего кода на системах, использующих данный пакет. Библиотека Python JSON Logger, которая позволяет организовать ведение лога в формате JSON, за последний месяц была загружена 40 млн раз. Проблема устранена в версии Python JSON Logger 3.3.0, опубликованной 7 марта.

Уязвимость вызвана тем, что в числе необязательных зависимостей у Python JSON Logger была указана библиотека “msgspec-python313-pre”, авторы которой в декабре 2024 года удалили свой проект из каталога PyPI, не уведомив разработчиков зависимых пакетов. Соответственно, злоумышленники могли загрузить в каталог PyPI свою библиотеку с тем же именем и она была бы подхвачена при сборке Python JSON Logger.

Выявивший проблему исследователь зарегистрировал новый пакет именем msgspec-python313-pre и продемонстрировал на практике возможность выполнения кода при установке Python JSON Logger с зависимостями для разработчиков, используя команду “pip install python-json-logger[dev]” на системах с Python 3.13.

Примечательно, что администраторов PyPI ранее несколько раз просили запретить удаление проектов, чтобы не допустить инциденты в стиле left-pad и защитить пользователей от потенциальных угроз совершения атак через зависимости (supply chain), но предложения не были воплощены в жизнь и повторная регистрация оставалась возможной.

Источник