Уязвимость заброшенного домена в экосистеме 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 раз.


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

19212Архитектура смыслов в профессиональной редактуре 19209Как беспрецедентный бунт чернокожих женщин в суде Бостона разрушил планы рабовладельцев? 19208Как новые поколения троянов удаленного доступа захватывают системы ради кибершпионажа и... 19207Почему мировые киберпреступники захватили рекламные сети, и как Meta вместе с властями... 19206Как фальшивый пакет StripeApi.Net в NuGet Gallery незаметно похищал финансовые API-токены... 19205Зачем неизвестная группировка UAT-10027 внедряет бэкдор Dohdoor в системы образования и... 19204Ритуальный предсвадебный плач как форма протеста в традиционном Китае 19203Невидимая угроза в оперативной памяти: масштабная атака северокорейских хакеров на... 19202Как уязвимость нулевого дня в Cisco SD-WAN позволяет хакерам незаметно захватывать... 19201Как Google разрушил глобальную шпионскую сеть UNC2814, охватившую правительства 70 стран... 19200Как простое открытие репозитория в Claude Code позволяет хакерам получить полный контроль... 19199Зачем киберсиндикат SLH платит женщинам до 1000 долларов за один телефонный звонок в... 19198Устранение слепых зон SOC: переход к доказательной сортировке угроз для защиты бизнеса
Ссылка