Los paquetes PyPI entregan malware ZiChatBot a través de las API de Zulip en Windows y Linux – CYBERDEFENSA.MX

Investigadores de ciberseguridad han descubierto tres paquetes en el repositorio Python Package Index (PyPI) que están diseñados para entregar sigilosamente una familia de malware previamente desconocida llamada ZiChatBot en sistemas Windows y Linux.

«Si bien estos paquetes de ruedas implementan las características descritas en sus páginas web PyPI, su verdadero propósito es entregar archivos maliciosos de forma encubierta», Kaspersky dicho. «A diferencia del malware tradicional, ZiChatBot no se comunica con un servidor de comando y control (C2) dedicado, sino que utiliza una serie de API REST de la aplicación pública de chat del equipo. Zulip como su infraestructura C2.»

La actividad ha sido descrita como un «ataque a la cadena de suministro PyPI cuidadosamente planificado y ejecutado» por la empresa rusa de ciberseguridad. Los nombres de los paquetes, que desde entonces han sido eliminados, se enumeran a continuación:

  • uuid32-utils (1.479 descargas)
  • colorinal (614 descargas)
  • termncolor (387 descargas)

Los tres paquetes se cargaron en PyPI durante un breve período entre el 16 y el 22 de julio de 2025. Si bien uuid32-utils y colorinal utilizan cargas útiles maliciosas similares, termncolor es un paquete de apariencia benigna que incluye colorinal como una dependencia.

Ciberseguridad

En los sistemas Windows, una vez instalado cualquiera de los dos primeros paquetes, el código malicioso extrae un gotero DLL («terminate.dll») y lo escribe en el disco. En el momento en que se importa la biblioteca a un proyecto, se carga la DLL, que actúa como un cuentagotas para ZiChatBot, después de lo cual establece una entrada de ejecución automática en el Registro de Windows y ejecuta el código para eliminarse del host.

La versión de Linux del dropper de objetos compartidos («terminate.so») coloca el malware en la ruta «/tmp/obsHub/obs-check-update» y configura una entrada crontab. Independientemente del sistema operativo en el que se esté ejecutando, ZiChatBot está diseñado para ejecutar el código shell recibido desde su servidor C2. Después de ejecutar el comando, el malware envía un emoji de corazón como respuesta para indicarle al servidor que la operación fue exitosa.

No está claro exactamente quién está detrás de la campaña. Sin embargo, Kaspersky dijo que el dropper comparte un «64% de similitud» con otro dropper utilizado por un grupo de hackers alineado con Vietnam llamado OceanLotus (también conocido como APT32).

A finales de 2024, el actor de amenazas era observado apuntando a la comunidad de ciberseguridad china con proyectos envenenados de Visual Studio Code disfrazados de complementos de Cobalt Strike para entregar un troyano que se ejecuta automáticamente cuando se compila el proyecto. El malware utiliza el servicio de toma de notas Notion como C2, según un análisis de ThreatBook.

Kaspersky señaló que si la campaña de la cadena de suministro de PyPI es realmente obra de OceanLotus, representa la estrategia del actor de amenazas para ampliar su alcance.

«Aunque los correos electrónicos de phishing siguen siendo un método de infección inicial común para OceanLotus, el grupo también está explorando activamente nuevas formas de comprometer a las víctimas a través de diversos ataques a la cadena de suministro», dijo.

Las vulnerabilidades de la biblioteca vm2 Node.js permiten el escape de Sandbox y la ejecución de código arbitrario – CYBERDEFENSA.MX

Se han revelado una docena de vulnerabilidades de seguridad críticas en la biblioteca vm2 Node.js que podrían ser aprovechadas por delincuentes para salir del entorno limitado y ejecutar código arbitrario en sistemas susceptibles.

vm2 es una biblioteca de código abierto que se utiliza para ejecutar código JavaScript que no es de confianza dentro de un espacio aislado seguro mediante la interceptación y la representación de objetos JavaScript para evitar que el código del espacio aislado acceda al entorno host.

Las fallas de seguridad se enumeran a continuación:

  • CVE-2026-24118 (Puntuación CVSS: 9,8): una vulnerabilidad que permite escapar de la zona de pruebas a través de «__lookupGetter__» y permite a un atacante ejecutar código arbitrario en el host subyacente. (Afecta a versiones <= 3.10.4, parches en 3.11.0)
  • CVE-2026-24120 (Puntuación CVSS: 9,8): una omisión de parche para CVE-2023-37466 (Puntuación CVSS: 9,8) que podría permitir a los atacantes escapar del entorno limitado a través de la propiedad de especie de los objetos prometidos y ejecutar comandos arbitrarios en el host subyacente. (Afecta a las versiones <= 3.10.3, parcheado en 3.10.5)
  • CVE-2026-24781 (Puntuación CVSS: 9,8): una vulnerabilidad que permite escapar del sandbox mediante la función «inspeccionar» y permite a un atacante ejecutar código arbitrario en el host subyacente. (Afecta a versiones <= 3.10.3, parches en 3.11.0)
  • CVE-2026-26332 (Puntuación CVSS: 9,8): una vulnerabilidad que permite escapar del sandbox mediante «SuppressedError» y permite a un atacante ejecutar código arbitrario en el host subyacente. (Afecta a versiones <= 3.10.4, parches en 3.11.0)
  • CVE-2026-26956 (Puntuación CVSS: 9,8): una vulnerabilidad de falla del mecanismo de protección que permite el escape del sandbox con la ejecución de código arbitrario al desencadenar un TypeError producido por la coerción de símbolo a cadena. (Afecta a la versión 3.10.4, confirmada en Node.js 25.6.1, parcheada en 3.10.5)
  • CVE-2026-43997 (Puntuación CVSS: 10.0): una vulnerabilidad de inyección de código que permite a un atacante obtener el objeto host y escapar del entorno limitado, lo que lleva a la ejecución de código arbitrario. (Afecta a las versiones <= 3.10.5, parcheado en 3.11.0)
  • CVE-2026-43999 (Puntuación CVSS: 9,9): una vulnerabilidad que permite eludir la lista de permitidos integrada de NodeVM y permite a un atacante cargar funciones integradas excluidas como child_process y lograr la ejecución remota de código. (Afecta a la versión 3.10.5, parcheada en 3.11.0)
  • CVE-2026-44005 (Puntuación CVSS: 10.0): una vulnerabilidad que permite que JavaScript controlado por un atacante escape del entorno limitado y habilite la contaminación de prototipos. (Afecta a las versiones 3.9.6-3.10.5, parcheado en 3.11.0)
  • CVE-2026-44006 (Puntuación CVSS: 10.0): una vulnerabilidad de inyección de código a través de «BaseHandler.getPrototypeOf» que permite el escape del entorno aislado y la ejecución remota de código. (Afecta a las versiones <= 3.10.5, parcheado en 3.11.0)
  • CVE-2026-44007 (Puntuación CVSS: 9,1): una vulnerabilidad de control de acceso inadecuado que permite el escape del sandbox y la ejecución de comandos arbitrarios del sistema operativo en el host subyacente. (Afecta a las versiones <= 3.11.0, parcheado en 3.11.1)
  • CVE-2026-44008 (Puntuación CVSS: 9,8): una vulnerabilidad que permite escapar del sandbox mediante «neutralizeArraySpeciesBatch()» y permite a un atacante ejecutar comandos arbitrarios en el host subyacente. (Afecta a las versiones <= 3.11.1, parcheado en 3.11.2)
  • CVE-2026-44009 (Puntuación CVSS: 9,8): una vulnerabilidad que permite escapar del sandbox a través de una excepción de protocolo nulo y permite a un atacante ejecutar comandos arbitrarios en el host subyacente. (Afecta a las versiones <= 3.11.1, parcheado en 3.11.2)
Ciberseguridad

La divulgación se produce un par de meses después de que el mantenedor de vm2, Patrik Simek, lanzara parches para otra falla crítica de escape del sandbox (CVE-2026-22709, puntuación CVSS: 9.8) que podría conducir a la ejecución de código arbitrario en el sistema host subyacente.

La serie de escapes de sandbox recientemente identificados ilustra el desafío de aislar de forma segura el código que no es de confianza en entornos de sandbox basados ​​en JavaScript, y Simek reconoció anteriormente que probablemente se descubrirán nuevos bypass en el futuro. Se recomienda a los usuarios de vm2 que actualicen a la última versión (3.11.2) para una protección óptima.