GuardFall: los filtros de seguridad de los agentes de IA se saltan con un truco de comillas

La firma Adversa AI ha publicado GuardFall, una investigación que demuestra que 10 de los 11 agentes de codificación de IA open source más populares ejecutan comandos que sus propios filtros de seguridad deberían bloquear. El truco no es sofisticado: aprovecha cómo Bash trata las comillas.

El problema

Muchos agentes de codificación tienen una lista de comandos "peligrosos" (como rm) que se supone que no deben ejecutar. El problema es que comparan la cadena literal que ellos ven, no lo que Bash interpreta tras eliminar las comillas. Escribir r''m o r""m no coincide con el patrón rm del filtro, pero Bash elimina las comillas vacías y ejecuta rm igualmente. Lo mismo ocurre con la expansión de variables como $IFS.

El vector de entrega es lo verdaderamente peligroso: un atacante esconde estas instrucciones en un README, un Makefile o una issue de un proyecto. Cuando el agente de IA lee el repositorio y actúa sobre él —algo para lo que está diseñado—, auto-ejecuta el comando ofuscado. Es un ataque de cadena de suministro contra el flujo de trabajo del desarrollador.

De 11 agentes probados, 10 eran vulnerables: opencode, Goose, Cline, Roo-Code, Aider, Plandex, Open Interpreter, OpenHands, SWE-agent y Hermes. El único que resistió fue Continue. Al tratarse de un fallo de diseño común y no de productos comerciales concretos, los investigadores no asignaron CVEs individuales.

Recomendaciones inmediatas

  • No ejecutes agentes de IA con permisos amplios sobre repositorios no confiables; aíslalos en contenedores efímeros sin acceso a datos sensibles.
  • Revisa manualmente README, Makefiles y scripts de dependencias de terceros antes de que un agente actúe sobre ellos.
  • Exige a las herramientas de IA que normalicen el comando (resolviendo comillas y variables) antes de aplicar el filtro de bloqueo.
  • Aplica el principio de mínimo privilegio también a las cuentas de servicio que usan los agentes.

¿Estás cubierto en DefensOps?

DefensOps observa la ejecución que estos agentes disparan en el endpoint, no la lógica interna del agente:

  • T1059 / T1059.004 – Ejecución de comandos y scripts (Unix Shell): la telemetría de procesos (OSQuery/Sysmon del catálogo nativo) detecta ejecuciones de shell ofuscadas —comillas insertadas, $IFS, concatenaciones— que evaden filtros pero delatan intención. Disponible desde Essential.
  • T1195 – Compromiso de cadena de suministro: en el plan Advanced, el motor de correlación enlaza la lectura de un repositorio/dependencia con la posterior ejecución anómala de comandos destructivos.
  • T1204 – Ejecución por el usuario/agente: se marca la cadena "herramienta de desarrollo → shell hija con comando peligroso".

👉 Consulta los planes de DefensOps y solicita una demo


Fuentes: The Hacker News · Adversa AI