
Investigadores de ciberseguridad han descubierto un código vulnerable en un paquete Python heredado que podría allanar el camino para que la cadena de suministro comprometa el índice de paquetes Python (PyPI) a través de ataques de adquisición de dominio.
La empresa de seguridad de la cadena de suministro de software, ReversingLabs, anunció que descubrió una «vulnerabilidad» en un archivo de arranque proporcionado por una herramienta de automatización de compilación e implementación llamada zc.buildout.
«El script automatiza el proceso de descarga, construcción e instalación de las bibliotecas y herramientas necesarias», afirmó el investigador de seguridad Vladimir Pezo. «Específicamente, cuando se ejecuta el script de arranque, recupera y ejecuta el script de instalación para los paquetes distribuidos desde python-distribute(.)org, un dominio heredado que actualmente se vende a un precio superior mientras se administra para generar ingresos por publicidad».
Los paquetes PyPI que contienen scripts de arranque para acceder al dominio en cuestión incluyen tornado, pypiserver, slapos.core, roman, xlutils y testfixtures.

El núcleo del problema tiene que ver con un script de arranque antiguo (‘bootstrap.py’) que se usó con la herramienta zc.buildout para inicializar el entorno Buildout. El script Python también admitía la capacidad de instalar una utilidad de empaquetado llamada «Distribute», una bifurcación de corta duración del proyecto Setuptools, en el entorno local.
Para lograr esto, el script de instalación de Distribute (‘distribute_setup.py’) se extrae de python-distribute(.)org, un dominio que ha estado a la venta desde 2014. La idea al agregar la opción era indicarle al script de arranque que descargue e instale el paquete Distribute en lugar del antiguo paquete Setuptools para administrar los huevos de compilación y las dependencias.
Es importante tener en cuenta que la bifurcación Distribute nació en ausencia de un desarrollo activo de Setuptools, la principal herramienta de administración de paquetes en uso en ese momento. Sin embargo, la funcionalidad Distribute se fusionó con Setuptools en 2013 y Distribute quedó obsoleto.
El problema identificado por ReversingLabs está relacionado con el hecho de que muchos paquetes continúan enviando scripts de arranque que intentan instalar Distribute de forma predeterminada o cuando se especifican las opciones de línea de comando (‘-d’ o ‘–distribute’). Esto, combinado con el hecho de que el dominio en cuestión está abierto al robo, expone a los usuarios a un riesgo potencial ya que un atacante podría utilizar esta configuración como arma para proporcionar código malicioso y robar datos confidenciales cuando el script de arranque se ejecuta incorrectamente.
Aunque algunos de los paquetes afectados han tomado medidas para eliminar sus scripts de arranque, el paquete slapos.core continúa enviando código vulnerable. También se incluye en las versiones de desarrollo y mantenimiento de Tornado.
Otro aspecto importante a considerar aquí es que el script de arranque no se ejecuta automáticamente durante la instalación del paquete y está escrito en Python 2. Esto significa que el script no se puede ejecutar en Python 3 sin modificaciones. Sin embargo, la mera presencia de este archivo deja una «superficie de ataque innecesaria» que un atacante puede explotar si se engaña a un desarrollador para que ejecute código que desencadene la ejecución del script de arranque.
La amenaza de adquisición de dominio no es teórica. En 2023, se reveló que el paquete npm fsevents se vio comprometido por un atacante malicioso que tomó el control de recursos de la nube no reclamados alojados en fsevents-binaries.s3-us-west-2.amazonaws(.)com y envió un ejecutable malicioso a los usuarios que tenían ciertas versiones del paquete instaladas (CVE-2023-45311, puntuación CVSS: 9,8).

«El problema radica en el patrón de programación de recuperar y ejecutar una carga útil desde un dominio codificado, que es un patrón común en el malware que muestra un comportamiento de descarga», dijo Pezo. «Al no desaprobar formalmente el módulo Distribute, los scripts de arranque vulnerables permanecieron y un número desconocido de proyectos quedaron expuestos a posibles ataques».
Esta divulgación se produce después de que HelixGuard descubriera un paquete malicioso llamado «correctores ortográficos» en PyPI. Aunque el paquete afirma ser una herramienta de revisión de errores ortográficos que utiliza OpenAI Vision, contiene código malicioso diseñado para conectarse a un servidor externo, descargar la carga útil de la siguiente etapa y ejecutar un troyano de acceso remoto (RAT).
Este paquete fue subido por primera vez a PyPI por el usuario llamado leo636722 el 15 de noviembre de 2025 y se descargó 955 veces. La descarga ya no es posible.
«Esta RAT puede recibir comandos remotos y ejecutar código Python controlado por el atacante a través de exec(), lo que permite un control remoto completo del host de la víctima», dijo HelixGuard. «Una vez que un usuario instala y ejecuta un paquete malicioso, se activa una puerta trasera que permite al atacante controlar de forma remota la computadora del usuario».
Source link
