Tu agente de programación es la nueva dependencia: npm, hooks y AGENTS.md

Del caso Nx de 2025 a los paquetes que reescriben la configuración de Claude Code en 2026: cómo el malware aprendió a usar a los agentes locales como herramienta.

19 de octubre de 20264 min de lectura

Durante años, el peor escenario de un paquete npm malicioso era claro: un script de postinstalación que corre con tus permisos, lee tus credenciales y las envía a algún lado. Ese escenario sigue existiendo. Lo que cambió es que ahora, en la misma máquina, vive un agente de programación con acceso a todo el proyecto, a la terminal y, muchas veces, a la red. El malware se dio cuenta.

El antecedente: Nx y s1ngularity (agosto de 2025)

Entre el 26 y el 27 de agosto de 2025, ocho versiones maliciosas de Nx y Nx Powerpack se publicaron en npm y estuvieron disponibles unas cinco horas. Según el análisis de Snyk, la carga útil hizo algo que hasta entonces se veía poco: usó los CLI de agentes locales (claude, gemini y q) con un prompt peligroso para inventariar archivos sensibles y exfiltrar secretos a repositorios públicos de GitHub llamados s1ngularity-repository.

El origen, según la actualización posterior, fue un workflow de GitHub Actions defectuoso introducido por un pull request, cuyo código se estima que fue generado con un asistente de IA. Es decir: un agente ayudó a abrir la puerta, y otros agentes fueron usados para saquear la casa.

Probablemente uno de los primeros casos documentados de malware que usa CLI de asistentes de IA para reconocimiento y exfiltración. — Snyk

2026: el ataque se muda a la configuración

En mayo de 2026, Inkog Labs publicó una prueba de concepto reproducible: un AGENTS.md manipulado y un servidor MCP malicioso se combinan para secuestrar una sesión de Claude Code sin interacción y exfiltrar secretos del .env. El argumento central es sencillo: herramientas como Claude Code, Cursor o Codex inyectan AGENTS.md como instrucciones autoritativas, y el modelo no puede distinguir uno escrito por los mantenedores de uno introducido por una dependencia o un paso de build.

En septiembre, codelake confirmó un paquete npm, squeez (registrado en OSSF como MAL-2026-13458), cuyo postinstall ejecutaba un script remoto con curl | sh, descargaba un binario nativo en la carpeta de Claude y se registraba en los hooks de settings.json. Ejecución remota al instalar, con persistencia en la superficie del agente.

Por qué este vector es tan efectivo

  • La configuración del agente sobrevive a la desinstalación del paquete: borras la dependencia, la instrucción queda.
  • Los archivos de instrucciones parecen documentación, así que nadie los revisa como código.
  • Las herramientas de análisis estático buscan patrones de código malicioso, no frases en markdown.
  • El agente ejecuta con la confianza que el desarrollador le dio, en el momento menos vigilado.

Prácticas que adopto y recomiendo

  • Desactivar scripts de instalación por defecto (ignore-scripts) y habilitarlos solo para paquetes revisados.
  • Versionar y revisar en code review AGENTS.md, CLAUDE.md, mcp.json y los hooks del agente; alertar ante cualquier cambio no hecho por una persona.
  • Lockfiles y versiones fijadas siempre, con un periodo de espera antes de adoptar versiones recién publicadas.
  • Ejecutar agentes en contenedores o entornos de desarrollo aislados, sin acceso a credenciales de producción.
  • Revisar periódicamente qué hooks y servidores MCP tiene registrados cada máquina del equipo.

Reflexión

Me parece justo decir que los agentes no crearon este problema; la cadena de suministro de npm ya era frágil. Lo que hicieron fue subir el valor del botín. Un script malicioso solía tener que traer su propia lógica de reconocimiento. Ahora puede pedírsela prestada al asistente más capaz de la máquina. La respuesta no es dejar de usar agentes, sino tratarlos como lo que son: un usuario privilegiado que también puede ser engañado.


Fuentes

  • Snyk — «Weaponizing AI Coding Agents for Malware in the Nx Malicious Package Security Incident» (27 ago 2025): https://snyk.io/blog/weaponizing-ai-coding-agents-for-malware-in-the-nx-malicious-package/
  • Inkog Labs — «The AGENTS.md Supply Chain Attack» (9 may 2026): https://inkog.io/labs/agents-md-supply-chain-attack
  • codelake research — CLR-2026-3059 · squeez (MAL-2026-13458): https://research.codelake.dev/advisories/clr-2026-3059-squeez/
  • HOL Guard — «npm postinstall script abuse in AI coding environments»: https://hol.org/guard/security/advisories/npm-postinstall-script-abuse
  • Seguridad en IA
  • Cadena de suministro
  • Agentes

Recibe los nuevos artículos

Un correo cuando publico algo nuevo sobre IA aplicada, producto y sistemas en producción. Sin ruido.

Comentarios

  • Todavía no hay comentarios. Sé el primero.

¿Quieres más notas como estas?

Cada análisis se publica aquí primero: qué cambió, por qué importa y qué observar después. Sugiere un tema si hay algo que quieras que analice.