Saltar a contenido

Ataques a la cadena de suministro afectan a las herramientas de desarrollo de Checkmarx y Bitwarden

Dos ataques a la cadena de suministro, el mismo día, el mismo dominio de comando y control

Author - Sophos Logo

Sophos X-Ops tiene constancia de informes que indican que dos herramientas de desarrollo muy utilizadas (el escáner de seguridad Checkmarx KICs y la CLI de Bitwarden) fueron secuestradas el 22 de abril de 2026 para robar credenciales de entornos de desarrollo.

Estos ataques se produjeron con pocas horas de diferencia y comparten el mismo dominio de comando y control (C2), lo que podría indicar que se trata de un único actor malicioso llevando a cabo una campaña coordinada.

Según los informes, ambos proveedores han contenido los incidentes desde entonces. En esta publicación se explica lo que ocurrió, qué se robó y qué deben hacer ahora los defensores. Las protecciones de Sophos están activadas para ambas intrusiones; al final de esta publicación se incluyen detecciones e indicadores.

La versión resumida

Un actor malicioso comprometió los procesos y canales de distribución de dos proveedores de herramientas para desarrolladores, aparentemente el mismo día. Se subieron versiones maliciosas de Checkmarx KICS (distribuidas a través de Docker Hub, Open VSX y GitHub Actions) y de la CLI de Bitwarden (distribuida a través de npm) a los canales oficiales y se presentaron como versiones legítimas.

Ambas cargas maliciosas intentaron recopilar la siguiente información confidencial:

  • Tokens de GitHub y npm
  • Claves SSH
  • Credenciales de proveedores de nube
  • Configuraciones de asistentes de IA

Además, ambas cargas intentaron exfiltrar los datos robados a audit.checkmarx[.]cx (94.154.172[.]43).

Vale la pena señalar que, justo el mes pasado, un actor malicioso conocido como TeamPCP comprometió las GitHub Actions de Checkmarx en dos repositorios, aparentemente aprovechando secretos de CI/CD robados anteriormente. Según se informa, los repositorios de Trivy, Telnyx y LiteLLM también se vieron afectados en esos ataques.

Por el momento, no tenemos información que sugiera que los ataques más recientes estén relacionados con esa campaña.

Incidente 1: Checkmarx KICS

Checkmarx KICS es un escáner de seguridad de código abierto de infraestructura como código que se usa ampliamente en los flujos de CI/CD. El 22 de abril, un atacante introdujo artefactos maliciosos a través de tres canales de distribución:

  • Docker Hub. El repositorio checkmarx/kics (que cuenta con más de cinco millones de descargas acumuladas) recibió imágenes manipuladas bajo las etiquetas v2.1.20-debian, v2.1.20, debian, alpine y latest, además de una etiqueta recién introducida: v2.1.21. Dentro de cada imagen, el binario ELF de KICS basado en Go había sido modificado para añadir telemetría no autorizada y una rutina de exfiltración que encriptaba los informes de análisis y los enviaba al endpoint del atacante.
  • Extensiones de VSX / VS Code. Según los informes, se manipularon dos extensiones oficiales de Checkmarx: checkmarx/cx-dev-assist (versiones 1.17.0 y 1.19.0) y checkmarx/ast-results (versiones 2.63.0 y 2.66.0). Las instalaciones combinadas superaban las 1000 en el momento del análisis. El atacante añadió una función oculta llamada «MCP addon» que descargaba una carga útil de unos 10 MB (mcpAddon.js) desde una URL de GitHub codificada y la ejecutaba a través del runtime de Bun al activar la extensión. Cabe destacar que el atacante manipuló el historial de Git para antedatar la confirmación de introducción a 2022, haciendo que la función maliciosa pareciera código ya establecido desde hacía tiempo.
  • GitHub Actions. El repositorio ast-github-action fue etiquetado con una versión maliciosa (2.3.35) que contenía la misma lógica de robo de credenciales.

mcpAddon.js está diseñado para rastrear entornos de desarrollo en busca de secretos de alto valor, incluyendo tokens de GitHub, tokens de npm, credenciales de AWS/Azure/GCP, claves SSH, variables de entorno y archivos de configuración para Claude y otras herramientas de IA. Estos datos recopilados se envían luego a hxxps://audit[.]checkmarx[.]cx/v1/telemetry.

Incidente 2: Bitwarden CLI

También el 22 de abril, un atacante comprometió una acción de GitHub utilizada en el pipeline de CI/CD de Bitwarden y publicó una versión troyanizada de @bitwarden/cli 2026.4.0 en npm. El paquete malicioso estuvo activo durante aproximadamente 90 minutos, entre las 17:57 y las 19:30 ET, antes de ser retirado. El paquete registra más de 70 000 descargas semanales.

Hay similitudes con la carga útil de Checkmarx descrita anteriormente. Un gancho de preinstalación invocaba un cargador (bw_setup.js) que descargaba el runtime de Bun y lanzaba una carga útil ofuscada de segunda fase (bw1.js). Esa carga útil se dirigía a activos similares (tokens de GitHub y npm, claves SSH, historial del shell, credenciales de la nube y configuraciones de herramientas de IA para Claude, Cursor y Aider), y luego cifraba los datos recopilados con AES-256-GCM y los exfiltraba al mismo endpoint audit.checkmarx[.]cx.

Hay dos características de esta carga útil que destacan. En primer lugar, los tokens de GitHub robados se utilizaron como arma en tiempo real: la carga útil los usó para inyectar flujos de trabajo maliciosos en los repositorios de las víctimas, lo que le dio al atacante un punto de apoyo duradero y una vía automatizada para seguir propagándose. En segundo lugar, el atacante creó repositorios públicos en las cuentas de GitHub de las víctimas y almacenó los datos robados y cifrados en su interior, utilizando esencialmente la propia infraestructura de la víctima como un punto de entrega oculto.

Por lo que sabemos, solo se vio afectado el paquete CLI de npm; las extensiones de navegador de Bitwarden, las aplicaciones de escritorio, las aplicaciones móviles y los datos del almacén de usuarios no se vieron comprometidos.

Implicaciones

Estos ataques se dirigieron a herramientas en las que la confianza juega un papel central: un escáner de seguridad y un gestor de contraseñas. Ambos se ejecutan en entornos con privilegios elevados, donde abundan las credenciales y el escrutinio del comportamiento de las herramientas puede ser escaso. Una credencial de la nube robada o un token de GitHub de larga duración obtenido de la máquina de un desarrollador es un posible punto de apoyo para toda una infraestructura de producción.

El C2 compartido, las similitudes en la carga útil y el ataque deliberado a las configuraciones de asistentes de IA (configuraciones de Claude, Cursor, Aider y MCP) podrían indicar que el actor malicioso entiende los entornos de desarrollo modernos y está recopilando información con la intención de actuar más adelante.

Qué hacer ahora

Si tu organización utilizó alguno de los artefactos afectados durante el periodo descrito, considera que los hosts afectados están comprometidos y actúa en consecuencia:

  1. Elimina las versiones maliciosas inmediatamente. Fija o vuelve a versiones que se sabe que son seguras, recopila cualquier imagen de contenedor derivada de las etiquetas KICS afectadas y purga las cachés.
  2. Rota las credenciales. Los tokens de GitHub y npm, las claves de proveedores de nube (AWS, Azure, GCP), las claves SSH y cualquier secreto de CI/CD que pudiera estar presente en los hosts afectados deben considerarse comprometidos. Rótalos y comprueba si se han utilizado desde direcciones IP desconocidas.
  3. Revisa GitHub en busca de flujos de trabajo inyectados y repositorios inesperados. La carga útil de Bitwarden modificó los flujos de trabajo existentes y creó nuevos repositorios públicos en las cuentas de las víctimas. Revisa el historial de flujos de trabajo y la lista de repositorios de cualquier cuenta a la que pudiera acceder un token comprometido.
  4. Activa MFA en el registro de paquetes y en las cuentas en la nube donde aún no esté habilitada
  5. Revisa las configuraciones de los asistentes de IA. Si había archivos de configuración de Claude, Cursor, Aider o MCP en un host afectado, da por hecho que el contenido fue sustraído. Rota cualquier secreto incrustado.

Hay más información disponible en el aviso de seguridad de Checkmarx y en la declaración de Bitwarden.

Protecciones de Sophos

Sophos cuenta con las siguientes protecciones relacionadas con los ataques descritos:

  • JS/Steal-EAP
  • JS/Agent-BLZZ
  • Linux/Agnt-HZ

La infraestructura C2 conocida del atacante está bloqueada en todos los productos de Sophos. Nuestros equipos de Detección y Respuesta Gestionadas (MDR) están llevando a cabo búsquedas de amenazas.

Indicadores de compromiso

Artefactos afectados

  • Docker Hub: checkmarx/kics — etiquetas v2.1.20-debian, v2.1.20, debian, alpine, latest, v2.1.21
  • Open VSX: checkmarx/cx-dev-assist versiones 1.17.0, 1.19.0
  • Open VSX: checkmarx/ast-results versiones 2.63.0, 2.66.0
  • GitHub Actions: etiqueta ast-github-action 2.3.35
  • npm: @bitwarden/cli versión 2026.4.0 (activo de 17:57 a 19:30 ET, 22 de abril de 2026)

Red

  • audit[.]checkmarx[.]cx
  • 94.154.172[.]43
  • hxxps://audit.checkmarx[.]cx/v1/telemetry

Sophos X-Ops sigue de cerca esta campaña y actualizará esta publicación en cuanto haya nueva información disponible.

 

Acerca del autor