Уязвимость сборки пакетов Python и риск захвата домена

Исследователи обнаружили критическую уязвимость в сценариях сборки некоторых пакетов Python в индексе PyPI, которая потенциально позволяет злоумышленникам захватывать домены и подменять легитимные скрипты вредоносным кодом. Проблема коренится в историческом переходе от distutils к setuptools и в оставшихся в экосистеме «bootstrap»‑скриптах, унаследованных из эпохи Python 2.

Что произошло

Речь идет о пакетах, которые по-прежнему используют устаревшие сценарии начальной загрузки (bootstrap scripts), автоматически устанавливающие или разрешающие установку сторонних инструментов. В одном из исследованных случаев эксплойт proof-of-concept демонстрирует, как на базе Python 2‑скрипта из пакета slapos.core можно обойти стандартный механизм загрузки пакета, запустив этот скрипт с флагом, позволяющим выполнить дополнительные (и потенциально вредоносные) действия.

Исследователи отмечают, что метод эксплойта использует именно поведение bootstrap‑скриптов — выполнение кода на этапе установки, который может загружать ресурсы из внешних доменов.

Почему это возможно

  • Историческая зависимость от distutils, который устарел и был удалён в Python 3.12, привела к тому, что ряд пакетов оставил старые схемы начальной загрузки;
  • Некоторые bootstrap‑скрипты обращаются к внешним доменам (в т.ч. к python-distribute.org), которые могли быть удалены и затем перерегистрированы третьими лицами — это порождает риск подмены контента;
  • Жёстко закодированные URL в исходниках дают злоумышленнику простой вектор для внедрения, аналогичный поведению загрузчиков вредоносного ПО;
  • Отсутствие надзора и централизованных мер контроля в части runtime‑запросов при установке пакетов повышает эксплойтабельность таких шаблонов.

Прецеденты

Аналогичный инцидент уже случался в экосистеме JavaScript: в 2023 году пакет npm fsevents пострадал от захвата невостребованного облачного ресурса, который использовали для доставки вредоносных исполняемых файлов пользователям. Тогда уязвимость была задокументирована как CVE-2023-45311. Это демонстрирует, что проблема — не узкоспецифичная баг‑фича PyPI, а общая слабость практик управления пакетами и внешними ресурсами.

Последствия для экосистемы и пользователей

  • Возможность доставки вредоносной полезной нагрузки под видом легитимного кода при установке пакета;
  • Риск распространения компрометированного кода через цепочки зависимостей;
  • Угроза для автоматизированных сборочных систем и CI/CD процессов, использующих уязвимые пакеты;
  • Ухудшение доверия к репозиториям и пакетом с историческими зависимостями.

Рекомендации для разработчиков и администраторов

  • Провести аудит пакетов на предмет наличия bootstrap‑скриптов и жёстко закодированных внешних URL; удалить или модернизировать такие скрипты;
  • Отказаться от использования устаревших компонентов, мигрировать с distutils на setuptools и поддерживать совместимость с современными версиями Python;
  • Избегать загрузки исполняемого кода по HTTP/из внешних доменов во время установки; при необходимости — хранить зависимости локально или в доверенных репозиториях;
  • Внедрить практики подписывания и верификации пакетов, контроль целостности (hash‑проверки) и строгие правила CI для сторонних зависимостей;
  • Проверять владение и историю доменов, используемых в коде, и удалять ссылки на невосстановленные или ненадёжные ресурсы;
  • Пользователям и админам: применять политику минимальных привилегий при установке, запускать установку в изолированных окружениях и мониторить сетевую активность установочных процессов.

Вывод

Проблема, выявленная исследователями, подчёркивает фундаментальный риск, связанный с практиками управления пакетами в открытом сообществе: устаревший код и внешние зависимости создают вектор для атак, от которых страдают как конечные пользователи, так и инфраструктура. Решение требует совместных усилий: поддерживающих PyPI, авторов пакетов и потребителей — чтобы исключить загрузку кода из ненадёжных источников, убрать Bootstrap‑скрипты эпохи Python 2 и внедрить строгие механизмы контроля целостности.

Без таких мер доверие к системе распространения пакетов может оказаться под угрозой, а злоумышленники продолжат использовать знакомые паттерны для масштабного компрометации приложений.

Отчет получен из сервиса CTT Report Hub. Права на отчет принадлежат его владельцу.

Ознакомиться подробнее с отчетом можно по ссылке.

Технологии киберугроз
Автор: Технологии киберугроз
Технологии киберугроз – технологическая компания, специализирующаяся на решениях по анализу угроз для предприятий любого размера. Мы собираем, нормализуем, обогащаем информацию о киберугрозах со всего мира. Нашими источниками являют более 260 открытых фидов, более 100 открытых поставщиков Threat Intelligence-отчетов, открытые online sandbox, социальные сети и репозитории GitHub. Мы также предоставляем ряд сервисов по: семантическом анализу Threat Intelligence-отчетов и приведения их в машиночитаемый формат STIX 2.1, проверки IoC на потенциальные ложноположительные сработки, а также получению WHOIS-записей для доменных имен.
Комментарии: