Plugin4Shell: Falla zero-click afecta a Claude Code, Codex, Copilot y Gemini CLI

Cuatro de los agentes de programación con inteligencia artificial más utilizados del mercado — Claude Code de Anthropic, Codex de OpenAI, GitHub Copilot de Microsoft y Gemini CLI de Google — compartieron la misma grave vulnerabilidad de ejecución remota de código sin clics. La falla, bautizada como Plugin4Shell por la empresa de seguridad AIR, fue divulgada públicamente esta semana y descrita por los investigadores como el primer ataque a la cadena de suministro en el ecosistema de agentes de IA.

¿Qué sucedió?

Los agentes de código son programas que utilizan un modelo de lenguaje para leer, escribir y ejecutar software en la computadora del desarrollador. Estos aceptan plugins (extensiones) descargados de mercados públicos. Para evitar que un plugin ya revisado cambie en silencio, el mercado “ancla” (pin) la instalación a un commit específico de Git, identificado por un hash SHA de 40 caracteres.

Según el informe de AIR, publicado el 17 de septiembre de 2026, los cuatro agentes realizaban el checkout de dicho hash, pero no confirmaban que el código que terminaba en el disco fuera verdaderamente ese commit. Un atacante que controlara el repositorio del plugin podía crear una rama con el mismo nombre que el hash y convertirla en la rama predeterminada. Git resolvía el nombre de la rama en lugar del objeto de commit, y el agente instalaba código malicioso mientras el anclaje seguía viéndose “correcto” en la interfaz. Ese es el núcleo de Plugin4Shell.

En Gemini CLI, la variante es ligeramente diferente: el cliente busca el commit y luego realiza el checkout de FETCH_HEAD. Si la rama predeterminada se llama exactamente FETCH_HEAD, el checkout recae en la rama del atacante.

Por qué es zero-click

Claude Code y Codex actualizan los plugins automáticamente en segundo plano. Si el mercado aprueba un nuevo anclaje aparentemente inofensivo y el propietario del repositorio cambia la rama predeterminada después, el agente descarga la versión dañina por su cuenta. No es necesario hacer clic, reinstalar ni aceptar ninguna advertencia. El plugin hereda los permisos del desarrollador: acceso a código interno, credenciales y, en muchos casos, entornos de producción.

AIR descubrió la falla en mayo de 2026, creó pruebas de concepto contra los cuatro productos y alertó a los fabricantes en junio, tal como también informaron Help Net Security y The Register.

Quiénes ya han corregido — y quiénes no

  • Anthropic corrigió Claude Code en la versión 2.1.179.
  • OpenAI corrigió Codex en la versión 0.146.0.
  • Microsoft no había lanzado un parche para GitHub Copilot al momento de la divulgación pública. La empresa declaró a la prensa que ya restringe los nombres de versiones y etiquetas que imitan hashes en el marketplace de GitHub, lo que reduciría la explotación allí, pero no reemplaza un parche en el agente.
  • Google declaró obsoleto a Gemini CLI y no lo corregirá. La recomendación oficial es migrar a Antigravity. Las instalaciones antiguas siguen siendo vulnerables.

Qué significa esto en la práctica

Quienes usan Claude Code o Codex deben actualizar el agente de inmediato; el marketplace por sí solo no soluciona el agujero de Plugin4Shell. Quienes aún ejecutan Gemini CLI deberían dejar de usarlo. Quienes dependen de Copilot quedan a la espera de un parche y, mientras tanto, deben reducir la superficie de ataque: desactivar la actualización automática de plugins, restringir los repositorios que el agente puede clonar y evitar otorgar credenciales de producción al agente.

La lección más amplia es que el modelo de confianza de los plugins de agentes sigue siendo el de un administrador de paquetes incompleto. Anclar un hash solo funciona si el cliente verifica el árbol de archivos después del checkout. Sin esa comprobación, el anclaje se convierte en una simple pegatina.

Qué es lo que aún no significa

No existe, en el informe de AIR, evidencia pública de explotación masiva antes de la divulgación. La falla requiere control sobre el repositorio del plugin (ya sea por el compromiso de la cuenta del mantenedor o mediante un plugin creado por el propio atacante que supere la revisión inicial). Tampoco se trata de un “jailbreak” del modelo: el objetivo es la capa de instalación, no el texto que genera el chatbot.

Fuentes: AIR Security, Help Net Security, The Register e InfoWorld.

Por GeekikiBot