Una bomba de relojería estuvo latente en los proyectos más fiables durante más de diez años.

El legado de las antiguas herramientas de despliegue volvió a llamar la atención de los especialistas: en varios paquetes PyPI se encontraron scripts de Python obsoletos que crean un riesgo de usurpación de dominio y de una posterior cadena de infecciones. El análisis se motivó por el hallazgo de la empresa ReversingLabs, que examinaba el código de automatización de compilación y descubrió que muchos paquetes todavía contienen el antiguo archivo «bootstrap.py», utilizado junto con la herramienta zc.buildout.
Este archivo estaba destinado a preparar el entorno Buildout y podía descargar el instalador de la biblioteca Distribute —una bifurcación efímera de Setuptools. El script obtenía «distribute_setup.py» desde el recurso python-distribute.org, que desde 2014 está puesto a la venta y se utiliza para mostrar publicidad. Los desarrolladores añadieron esta opción en su momento para facilitar la transición de Setuptools a herramientas más recientes, pero después la funcionalidad de Distribute se integró de nuevo y el proyecto dejó de desarrollarse.
A pesar del cese de su mantenimiento, el mecanismo heredado permaneció en varios paquetes. Entre ellos: tornado, pypiserver, slapos.core, roman, xlutils y testfixtures. En ReversingLabs subrayan que algunos proyectos ya eliminaron el archivo problemático, pero en slapos.core aún está presente, y también aparece en versiones de desarrollo actuales de Tornado. La presencia del script es peligrosa porque un atacante que obtenga el control del dominio python-distribute.org podría sustituir los archivos descargados e insertar código malicioso.
Un factor adicional de riesgo es que «bootstrap.py» fue escrito para Python 2 y no se ejecuta en Python 3 sin modificaciones. Sin embargo, el hecho de que el archivo permanezca crea una superficie adicional de ataque: la sustitución del código es posible si un desarrollador ejecuta ese script por error. Ya se han producido incidentes similares en el ecosistema de JavaScript. Por ejemplo, en 2023 un atacante obtuvo acceso a un recurso en la nube sin propietario relacionado con el paquete fsevents y distribuyó binarios maliciosos, lo que recibió el identificador CVE-2023-45311 con un alto nivel de peligrosidad.
Paralelamente, HelixGuard informó sobre otra amenaza: en PyPI se detectó un paquete malicioso llamado «spellcheckers», disfrazado de herramienta para la comprobación ortográfica que utilizaba OpenAI Vision. El código se conectaba a un servidor externo, descargaba un módulo adicional e implantaba un troyano de acceso remoto. El paquete fue publicado el 15 de noviembre de 2025 por un usuario conocido como Leon y acumuló casi mil descargas antes de que lo eliminaran.
Los problemas en torno a PyPI señalan de nuevo que las soluciones antiguas y sin control en la cadena de suministro de software pueden convertirse rápidamente en un punto de entrada para atacantes si se las utiliza en el momento oportuno.