Уязвимость заброшенного домена в экосистеме Python открывает вектор атак на цепочку поставок

Исследователь Владимир Пезо из компании ReversingLabs, специализирующейся на безопасности цепочек поставок программного обеспечения, обнаружил критическую проблему в устаревших пакетах Python. В репозитории Python Package Index (PyPI) был выявлен уязвимый код, создающий риск компрометации через захват домена. Основной причиной угрозы стал отказ от своевременного вывода из эксплуатации модуля «Distribute», из-за чего в проектах сохранились опасные загрузочные скрипты.
Уязвимость заброшенного домена в экосистеме Python открывает вектор атак на цепочку поставок
Изображение носит иллюстративный характер

Техническая суть проблемы кроется в инструменте автоматизации сборки и развертывания zc.buildout, а конкретно в старом скрипте инициализации среды bootstrap.py. Этот файл предназначен для автоматической загрузки, сборки и установки библиотек. В процессе работы он извлекает и запускает установочный скрипт distribute_setup.py. Триггером для выполнения вредоносного действия служит попытка установки «Distribute», происходящая либо по умолчанию, либо при использовании опций командной строки -d или --distribute. Механизм включает извлечение полезной нагрузки с жестко закодированного домена, что является паттерном, характерным для вредоносного ПО.

Центральным элементом уязвимости выступает целевой домен python-distribute[.]org. Этот устаревший веб-адрес выставлен на продажу с 2014 года и в настоящее время находится в премиальном ценовом диапазоне, используется для генерации рекламных доходов. Угроза заключается в латентном риске: злоумышленники могут приобрести этот домен и разместить на нем вредоносный код. Если загрузочный скрипт будет случайно запущен разработчиком, это приведет к выполнению атаки, потенциальным итогом которой может стать кража конфиденциальных данных.

Уязвимый скрипт, обращающийся к указанному домену, содержится в ряде пакетов PyPI. В список затронутых проектов входят tornado (в версии для разработки и обслуживания), pypiserver, roman, xlutils и testfixtures. Особо отмечается пакет slapos.core, который до сих пор поставляет этот уязвимый код. Исторически модуль «Distribute» был недолговечным форком проекта Setuptools, созданным из-за отсутствия активной разработки последнего. В 2013 году функции форка были интегрированы обратно в Setuptools, что сделало «Distribute» устаревшим, однако скрипт, изначально созданный для загрузки форка вместо оригинала, остался в кодовой базе.

Существуют определенные факторы, снижающие вероятность немедленной эксплуатации. Скрипт не запускается автоматически при установке пакета и написан на языке Python 2, что делает невозможным его выполнение в среде Python 3 без модификаций. Эксперты классифицируют эту угрозу как «ненужную поверхность атаки», реализация которой зависит от того, удастся ли обманом заставить разработчиков запустить устаревший код.

Для демонстрации реальности подобных угроз приводится сравнительный пример инцидента 2023 года с пакетом npm под названием fsevents. Уязвимости был присвоен идентификатор CVE-2023-45311 и критический рейтинг CVSS 9.8. Злоумышленник захватил контроль над невостребованным облачным ресурсом по адресу fsevents-binaries.s3-us-west-2.amazonaws[.]com. В результате пользователям, устанавливавшим определенные версии пакета, отправлялись вредоносные исполняемые файлы.

Параллельно с описанной проблемой была зафиксирована активность вредоносного пакета spellcheckers, обнаруженного системой HelixGuard. Пакет, загруженный пользователем под ником leo636722 15 ноября 2025 года, ложно позиционировался как инструмент для проверки орфографии с использованием «OpenAI Vision». На самом деле ПО содержало бэкдор и троян удаленного доступа (RAT). Цепочка атаки включала соединение с внешним сервером, загрузку полезной нагрузки следующей стадии и выполнение подконтрольного атакующему кода Python через функцию exec(), обеспечивая полный удаленный контроль над хостом жертвы. До момента удаления пакет был скачан 955 раз.


Новое на сайте

19817В Луксоре нашли стелу с римским императором в образе фараона 19816Экипаж Artemis II о моменте, когда земля исчезла за луной 19815Почему луна выглядит по-разному в разных точках земли? 19814Adobe экстренно закрыла опасную дыру в Acrobat Reader, которую хакеры использовали с... 19813Метеорный поток, рождённый из умирающего астероида 19812Когда робот пишет за тебя прощальную смс 19811Что общего у лунной миссии, толстого попугая, загадочной плащаницы и лекарства от диабета? 19810Какие снимки Artemis II уже стали иконами лунной программы? 19809Кто на самом деле хочет сладкого — вы или ваши бактерии? 19808Как рекламные данные 500 миллионов телефонов оказались в руках спецслужб? 19807Экипаж Artemis II вернулся на землю после десяти дней в космосе 19806Зелёная и коричневая луна: почему геологи Artemis II уже не могут усидеть на месте 19805Эксперты уверены в теплозащитном щите Artemis II, несмотря на проблемы предшественника 19804Выжить внутри торнадо: каково это — когда тебя засасывает в воронку 19803Аляскинские косатки-охотники на млекопитающих замечены у берегов Сиэтла
Ссылка