00:00:00Esta podría ser una de las mayores brechas en la cadena de suministro de NPM que hayamos visto,
00:00:03y no, esto no es una broma del Día de los Inocentes, es solo un mal momento y la gente debe saberlo.
00:00:07Sucedió en el paquete Axios; el cliente HTTP ha sido instalado 101 millones de veces esta semana
00:00:13y tiene más de 174,000 dependientes. Ya ha afectado a paquetes como Datadog,
00:00:18OpenClaw y WordPress, y también se ha vinculado con hackers norcoreanos.
00:00:22Así que, entremos de lleno y veamos qué pasó.
00:00:29Esta es la historia: el 31 de marzo de 2026, un atacante comprometió la cuenta de NPM
00:00:34del mantenedor principal de Axios y publicó dos versiones con puerta trasera, la versión 1.14.1 que
00:00:39fue marcada como la última versión y también la versión 0.30.4 marcada como legado.
00:00:44En estos paquetes introdujeron una dependencia fantasma llamada "plaincryptojs",
00:00:48que era esencialmente el paquete normal crypto.js pero con un pequeño ajuste:
00:00:52tenía un script de post-instalación llamado setup.js. Eso significa que todos y cada CI que instalara
00:00:58estos paquetes comprometidos también estaba ejecutando este script. El script en sí contenía
00:01:02código ofuscado que verificaba qué sistema operativo estabas usando y luego se conectaba a un servidor
00:01:07para descargar una segunda carga útil relevante para tu sistema operativo. Así que nadie
00:01:12estaba a salvo de este ataque e incluso se aseguraron de que la carga útil de Mac OS
00:01:16funcionara tanto en Macs Intel como Apple. Y es la segunda carga útil la que es realmente mala,
00:01:20se trata del RAT o troyano de acceso remoto y funciona básicamente igual en todos los
00:01:25sistemas operativos. Primero escaneaba tus archivos revisando tus documentos, escritorio
00:01:29y carpetas de configuración, y la versión de Windows incluso escaneaba tu OneDrive, AppData y cada
00:01:33letra de unidad que tuvieras en tu sistema y luego enviaba esa lista de archivos al servidor,
00:01:38probablemente para verificar si había algo que valiera la pena robar. Después de eso, comenzaba
00:01:42a emitir señales, por lo que cada 60 segundos contactaba al servidor con tu nombre de host, usuario, sistema operativo,
00:01:47zona horaria, modelo de hardware y una lista completa de todos los procesos en ejecución para que el atacante viera
00:01:52qué software usas y si lo estás usando activamente. Y si todo eso no suena lo suficientemente mal,
00:01:56lo peor está por venir, ya que en cualquier momento el atacante podía emitir remotamente cuatro comandos
00:02:00que le permitirían navegar por cualquier directorio de tu sistema, ejecutar comandos de shell o scripts arbitrarios,
00:02:05soltar y ejecutar malware adicional o incluso matar todo el proceso para borrar sus huertos. De hecho,
00:02:10incluso se aseguraron de que el script de configuración original se borrara a sí mismo y luego borrara el package.json
00:02:15que tenía la post-instalación y lo reemplazara con una versión limpia para intentar que esto fuera
00:02:19tan indetectable como fuera posible. Como pueden ver, este hack fue realmente malo y fue diseñado
00:02:23para atacar estaciones de trabajo de desarrolladores y ejecutores de CI/CD para buscar todo tipo de secretos como archivos .env,
00:02:28tokens de NPM, claves SSH y cualquier otra cosa; y cualquier sistema que ejecutara estas cargas maliciosas
00:02:34debería tratarse como un escenario de robo total de credenciales. Además de todo esto, está también
00:02:38el misterio de cómo se comprometió la cuenta de NPM. El mantenedor señaló que tiene activada la autenticación de dos factores
00:02:43y sus flujos de GitHub Actions también tienen la autenticación activada. Así que lo que parece haber pasado es que
00:02:47los paquetes se publicaron usando el CLI de NPM con un token de acceso de NPM de larga duración. La siguiente pregunta
00:02:53es cómo obtuvieron acceso a ese token, y el mantenedor incluso piensa que alguien podría haber
00:02:56obtenido sus códigos de recuperación de cuenta, pero cómo lo hicieron es un completo misterio por ahora. Si quieres
00:03:01ver si te has visto afectado por algo de esto, asegúrate de buscar en tus archivos lock las versiones de axios
00:03:04impactadas, así como el paquete plaincryptojs, y también busca en tus node modules
00:03:09el paquete en sí. Si ves alguno de ellos, desafortunadamente son malas noticias. También puedes revisar
00:03:14tu sistema en busca de rastros del RAT y dejaré informes completos en el enlace de abajo para que sigas
00:03:18los pasos y sepas qué hacer si has sido comprometido. En el futuro, también hay algunos
00:03:22pasos que puedes tomar para intentar prevenir estos ataques; el primero es siempre subir tus archivos lock
00:03:26y asegúrate de usar el comando "npm ci" en lugar de "npm install" en tus flujos de trabajo.
00:03:31También querrás asegurarte de tener una edad mínima establecida en tu gestor de paquetes, asegurándote
00:03:35de que los paquetes tengan al menos 48 horas de antigüedad antes de ser instalados, con la esperanza de que los maliciosos
00:03:39sean detectados a tiempo, ya que este de axios fue descubierto y borrado tres horas después. Finalmente,
00:03:44si es posible, simplemente usa la bandera "ignore-scripts" cuando ejecutes npm install o usa un gestor
00:03:48de paquetes como Bun, que bloquea todos los scripts de post-instalación por defecto y solo los ejecuta
00:03:53en las dependencias que hayas listado específicamente como confiables. Espero que este sea el mayor ataque que
00:03:57veamos este año, pero definitivamente estamos viendo más y más de ellos, así que asegúrense de mantenerse a salvo
00:04:01allá afuera y déjenme saber qué piensan de todo esto en los comentarios de abajo
00:04:04o denle a suscribirse y, como siempre, nos vemos en el próximo.