Investigadores de ciberseguridad han descubierto código pusilánime en paquetes Python heredados que potencialmente podrían allanar el camino para comprometer la cautiverio de suministro en el Índice de paquetes Python (PyPI) a través de un ataque de adquisición de dominio.
La empresa de seguridad de la cautiverio de suministro de software, ReversingLabs, dijo que encontró la “vulnerabilidad” en los archivos de comienzo proporcionados por una aparejo de automatización de compilación e implementación convocatoria “zc.buildout”.
“Los scripts automatizan 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 comienzo, rastreo y ejecuta un script de instalación para el paquete Distribuir desde python-distribute(.)org, un dominio heredado que ahora está adecuado para la saldo en el rango de precios premium mientras se administra para producir ingresos por publicidad”.
Los paquetes PyPI que incluyen un script de comienzo que accede al dominio en cuestión incluyen tornado, pypiserver, slapos.core, roman, xlutils y testfixtures.
El quid del problema tiene que ver con un antiguo script de comienzo (“bootstrap.py”) que se usó cercano con la aparejo zc.buildout para inicializar el entorno Buildout. El script Python todavía admitía la capacidad de instalar una utilidad de empaquetado convocatoria “Distribute”, una desvío de corta duración del esquema Setuptools, en el entorno restringido.
Para ganar esto, el script de instalación de Distribute (“distribute_setup.py”) se obtiene de python-distribute(.)org, un dominio que ha estado a la saldo desde 2014. Al unir la opción, la idea era indicarle al script de comienzo que descargara e instalara el paquete Distribute en empleo del paquete precursor de Setuptools para establecer los huevos y las dependencias para la compilación.
Es importante tener en cuenta que la desvío Distribute surgió adecuado a la errata de exposición activo de Setuptools, la principal aparejo de empresa de paquetes utilizada en ese momento. Sin incautación, las funciones de Distribute se volvieron a integrar en Setuptools en 2013, lo que dejó a Distribute obsoleto.
El problema identificado por ReversingLabs se refiere al hecho de que muchos paquetes han seguido enviando el script de comienzo que intenta instalar Distribute de forma predeterminada o cuando se especifica la opción de rasgo de comandos (“-d” o “–distribute”). Esto, cercano con el hecho de que el dominio en cuestión está adecuado, pone a los usuarios en peligro secreto, ya que un atacante podría utilizar esta configuración como arsenal para servir código sagaz cuando el script de comienzo se ejecuta inadvertidamente y potencialmente robar datos confidenciales.
Si proporcionadamente algunos de los paquetes afectados han tomado medidas para eliminar el script de comienzo, el paquete slapos.core aún continúa enviando el código pusilánime. Igualmente está incluido en la traducción de exposición y mantenimiento de Tornado.
Otro aspecto importante a considerar aquí es que el script de comienzo 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 con Python 3 sin modificaciones. Pero la mera presencia del archivo deja una “superficie de ataque innecesaria” que los atacantes pueden explotar si se engaña a los desarrolladores para que ejecuten código que desencadene la ejecución del script de comienzo.
La amenaza de una adquisición de dominio no es teórica. En 2023, salió a la luz que el paquete npm fsevents fue comprometido por un mal actor que tomó el control de un expediente en la cirro no reclamado alojado en fsevents-binaries.s3-us-west-2.amazonaws(.)com para dirigir ejecutables maliciosos a los usuarios que instalaban ciertas versiones del paquete (CVE-2023-45311, puntuación CVSS: 9,8).
“El problema radica en el patrón de programación que incluye apañarse y ejecutar una carga útil desde un dominio codificado, que es un patrón comúnmente observado en el malware que muestra un comportamiento de descarga”, dijo Pezo. “El hecho de no desmantelar formalmente el módulo Distribute permitió que persistieran scripts de comienzo vulnerables y dejó un número desconocido de proyectos expuestos a un posible ataque”.
La divulgación se produce cuando HelixGuard descubrió un paquete sagaz en PyPI llamado “correctores ortográficos” que afirma ser una aparejo para revisar errores ortográficos usando OpenAI Vision, pero contiene código sagaz diseñado para conectarse a un servidor forastero y descargar una carga útil de la subsiguiente etapa, que luego ejecuta un troyano de ataque remoto (RAT).
El paquete, subido por primera vez a PyPI el 15 de noviembre de 2025 por un adjudicatario llamado leo636722, se descargó 955 veces. Ya no está adecuado para descargar.
“Esta RAT puede cobrar comandos remotos y ejecutar código Python controlado por el atacante a través de exec(), lo que permite un control remoto total sobre el host de la víctima”, dijo HelixGuard. “Cuando el adjudicatario instala y ejecuta el paquete sagaz, la puerta trasera se activa, lo que permite al atacante controlar de forma remota la computadora del adjudicatario”.


