Hades: el gusano que envenena tus configs de IA
Hades es un gusano que roba credenciales y se autopropaga a través de paquetes PyPI y npm. Lo que lo distingue: reescribe los archivos de configuración de los asistentes IA para lograr persistencia — y planta inyecciones de prompt para engañar a las propias herramientas IA que la gente usa para analizarlo.
Cómo se propaga Hades
Hades forma parte de la campaña de supply chain Miasma — una oleada que envenenó aproximadamente 30 paquetes de PyPI (37 artefactos wheel maliciosos) en los ecosistemas de Python científico y bioinformática. Cada wheel malicioso incluye un archivo *-setup.pth que Python ejecuta en cada arranque del intérprete — el equivalente Python al problema del hook de instalación de npm. No se necesita ningún import; el payload se ejecuta antes de que revises el código.
El hook .pth descarga un runtime Bun precompilado en /tmp/b/ y ejecuta un payload JavaScript ofuscado (_index.js), eludiendo los controles del gestor de paquetes y los registros del proxy de red. Los tokens de GitHub y publicación robados le permiten republicar más paquetes: autopropagación.
La parte que ataca a los agentes IA
Hades instala una puerta trasera en los archivos de configuración y reglas de 14 asistentes IA — Claude, Codex, Gemini, Copilot, Cline, Aider, Tabby, Amazon Q, Cody, Bolt, Continue y más. Planta instrucciones o hooks personalizados (p. ej. bun run bootstrap) en archivos como .cursorrules, .windsurfrules, .github/copilot-instructions.md, .aider.conf.yml y settings.json / mcp.json. La próxima vez que un desarrollador abra el workspace, su propio agente ejecutará el gusano.
Esto es exactamente envenenamiento de memoria: una infección puntual se convierte en una instrucción permanente que el agente relee en cada ejecución.
¿Estás infectado? Qué comprobar
- Archivos
*-setup.pthno reconocidos en tusite-packagesde Python. - Un marcador
/tmp/.bun_ran, un binario Bun en/tmp/b/, o/var/tmp/.gh_update_state. - Instrucciones extrañas en configs de IA:
.cursorrules,.vscode/tasks.json,~/.claude/settings.json,mcp.json,.aider.conf.yml. - Persistencia:
~/.config/systemd/user/update-monitor.service(Linux) o~/Library/LaunchAgents/com.user.update-monitor.plist(macOS), más~/.local/share/updater/update.py.
Los nombres de paquetes reportados en esta oleada incluyen:
# Oleada Hades — no instalar; eliminar si está presente: bramin cmd2func coolbox dynamo-release embiggen ensmallen executor-engine executor-http funcdesc gpsea magique magique-ai mflux-streamlit mrbios napari-ufish nhmpy nucbox okite pantheon-agents pantheon-toolsets ppkt2synergy pyphetools rlask rsquests spateo-release synago tlask ufish uprobe
Si te ha afectado: el orden importa
- 1. Aislar — desconectar la máquina de la red.
- 2. Eliminar persistencia — borrar el archivo
*-setup.pth, eliminar las instrucciones inyectadas de tus configs de IA y suprimir cualquier servicio update-monitor o LaunchAgent. - 3. Eliminar el paquete — desinstalar el paquete afectado con
pip uninstall/npm uninstall. - 4. Ahora rotar — solo ahora rotar cada clave, token y credencial a los que la máquina tuviera acceso.
Cómo ayuda PoisonZero
PoisonZero vigila los archivos de configuración e instrucciones de tu asistente IA y comprueba cada escritura antes de que surta efecto. El paso de persistencia de Hades — reescribir .cursorrules, settings.json, mcp.json y similares — se detecta en el momento de la escritura, fail-closed, y se revierte con un rastro de auditoría completo.
Para ser claros sobre el alcance: PoisonZero protege el vector de configuración del agente — el paso que convierte una infección puntual en persistencia duradera dentro de tus herramientas IA. No elimina el paquete malicioso en sí; para eso, sigue el orden de limpieza indicado arriba.
Mantén los gusanos fuera de tus configs de agente.
PoisonZero comprueba cada escritura en tus archivos de config e instrucciones de IA — fail-closed.
Sign me upSeguir leyendo: Gusanos de la cadena de suministro · ¿Qué es el Memory Poisoning? · Agentes de IA en la pipeline de CI/CD