La falla de acción de Claude Code GitHub permitió que un problema malicioso secuestrara los repositorios – CYBERDEFENSA.MX

Un investigador de seguridad encontró una falla en Claude Code GitHub Action de Anthropic que permitía a un atacante hacerse cargo de los repositorios públicos vulnerables que lo ejecutaban, con nada más que un único problema de GitHub abierto. Debido a que el propio repositorio de acciones de Anthropic utilizó el mismo flujo de trabajo, un ataque funcional podría haber introducido código malicioso en la acción misma y en los proyectos posteriores que la ejecutan.

RyotaK de GMO Flatt Seguridad reportado el desvío central a Anthropic en enero, y Anthropic Lo solucioné en cuatro días.con mayor endurecimiento durante la primavera; las correcciones están en claude-code-action v1.0.94. Anthropic calificó los problemas con 7.8 en CVSS v4.0 y pagó una recompensa por errores.

Claude Code GitHub Actions coloca a Claude en canales de CI/CD para clasificar problemas, colocar etiquetas, revisar solicitudes de extracción o ejecutar comandos de barra diagonal. De forma predeterminada, el flujo de trabajo obtiene acceso de lectura y escritura al código, los problemas, las solicitudes de extracción, las discusiones y los archivos de flujo de trabajo de un repositorio. Debido a que esos permisos son amplios, se supone que la acción debe ser exigente en cuanto a quién puede activarla: sólo los usuarios con acceso de escritura.

Ciberseguridad

El control del gatillo tenía un agujero. Saludó a cualquier actor cuyo nombre terminara en [bot]asumiendo que las GitHub Apps son cosas confiables que instalan los administradores. El problema es que cualquiera puede registrar una aplicación GitHub, instalarla en un repositorio de su propiedad y usar su token para abrir una incidencia o una solicitud de extracción en cualquier repositorio público. La acción detectó «un robot» y dejó pasar el contenido del atacante. El modo Etiqueta tenía una verificación adicional para confirmar que el actor era un ser humano real; el modo agente no lo hizo, lo que lo dejó abierto.

A partir de ahí, el atacante se apoya en la inyección indirecta, el truco de colocar instrucciones dentro del contenido que lee una IA para que el modelo las siga en lugar de su tarea real. RyotaK escribió un problema cuyo cuerpo parecía un mensaje de error, luego refinó el mensaje hasta que Claude se «recuperó» ejecutando los comandos ocultos en él. El objetivo es /proc/self/environ, el archivo de Linux que contiene las variables de entorno de un proceso, incluidos los secretos. Claude Code bloquea las lecturas ingenuas, pero RyotaK evita la guardia de todos modos y consigue que Claude vuelva a escribir los valores en el problema, donde el atacante puede capturarlos.

El verdadero premio en esas variables es el par de credenciales que GitHub Actions usa para solicitar un token OIDC, un token firmado que demuestra «Soy este flujo de trabajo ejecutándose en este repositorio». Claude Code intercambia ese token con el backend de Anthropic por un token de instalación de la aplicación Claude GitHub con acceso de escritura. Roba esas credenciales, reproduce el intercambio y tendrás acceso de escritura al código, los problemas y los flujos de trabajo del objetivo. Apunte al repositorio claude-code-action y podría envenenar la acción que realizan los proyectos posteriores.

RyotaK también marcó una ruta más suave que omitió por completo el truco del bot. El propio flujo de trabajo de ejemplo de clasificación de problemas de Anthropic se incluye con Allow_non_write_users: «*», que permite que cualquiera lo active, una configuración que los documentos de Anthropic ya marcan como riesgosa. Peor aún, Claude estaba publicando resúmenes de tareas en el panel de resumen visible públicamente de la ejecución del flujo de trabajo, una forma lista para filtrar datos. Muchos repositorios copiaron ese ejemplo y heredaron el agujero.

También hay un camino para un atacante que puede editar problemas pero no puede activar Claude por sí solo: editar el problema de un usuario confiable después de haber activado el flujo de trabajo, pero antes de que Claude lo lea y la carga útil se instale como entrada «confiable».

¿Qué hacer? Actualice a claude-code-action v1.0.94 o posterior. Luego audite cualquier flujo de trabajo que permita a los usuarios sin acceso de escritura o bots activar Claude: si está recibiendo entradas que no son de confianza, no le proporcione ningún secreto más allá de la clave API de Anthropic y GITHUB_TOKEN, y elimine las herramientas y permisos que puedan usarse para la exfiltración.

Ciberseguridad

Nada de esto es teórico. La misma configuración, un sistema de clasificación de problemas de IA más permisos amplios e inyección rápida, ya causó un verdadero impacto en la cadena de suministro:

  • En febrero, un título de problema inyectado rápidamente contra el flujo de trabajo de clasificación de acciones de código claude de Cline permitió a los atacantes robar un token de publicación npm y enviar un cline@2.3.0 no autorizado. La versión maliciosa solo instaló a la fuerza un agente de IA independiente y no malicioso y fue retirada unas ocho horas después, pero la misma cadena podría haber enviado malware real con la misma facilidad a todos los que actualizaron.
  • El robot autónomo «HackerBot-Claw» pasó a finales de febrero investigando configuraciones erróneas de GitHub Actions en proyectos de Microsoft, Datadog, CNCF y otros, aunque cuando intentó inyectar rápidamente a un revisor basado en Claude a través de un archivo de configuración envenenado, Claude lo detectó y se negó.

No hay ninguna señal pública de que este camino exacto, el que envenena la propia acción de Anthropic, se haya utilizado contra un objetivo vivo; RyotaK lo demostró sólo en sus propios repositorios de prueba, y tiene cuidado de separarlo de las variantes anteriores que sí fueron explotadas.

RyotaK dice que ahora ha informado alrededor de 50 formas distintas de eludir el sistema de permisos de Claude Code y ejecutar comandos, parte de una serie constante de fallas de inyección rápida en agentes de codificación de IA. La inyección rápida todavía no está resuelta, y un agente con herramientas y tokens reales puede ser empujado hasta donde sus permisos lo permitan.

Una falla en la extensión de Chrome de Claude permitió que «cualquier» otro complemento secuestrara la IA de las víctimas

A medida que las empresas y los gobiernos recurren a agentes de inteligencia artificial para acceder a Internet y realizar tareas de nivel superior, los investigadores continúan encontrando fallas graves en grandes modelos de lenguaje que pueden ser explotadas por malos actores.

lo último descubrimiento proviene de la firma de seguridad de navegadores LayerX, e involucra un error en la extensión de Chrome para el modelo Claude AI de Anthropic que permite que cualquier otro complemento, incluso aquellos sin permisos especiales, incruste instrucciones ocultas que pueden hacerse cargo del agente.

«La falla surge de una instrucción en el código de la extensión que permite que cualquier script que se ejecute en el navegador de origen se comunique con el LLM de Claude, pero no verifica quién está ejecutando el script», escribió el investigador principal de LayerX, Aviad Gispan. «Como resultado, cualquier extensión puede invocar un script de contenido (que no requiere ningún permiso especial) y emitir comandos a la extensión Claude».

Gispan dijo que podía ejecutar cualquier mensaje que quisiera, superar las barreras de seguridad de Claude, evadir la confirmación del usuario y realizar acciones entre sitios a través de múltiples herramientas de Google. Como prueba de concepto, LayerX pudo explotar la falla para extraer archivos de las carpetas de Google Drive y compartirlos con partes no autorizadas, monitorear la actividad reciente del correo electrónico y enviar correos electrónicos en nombre de un usuario, y robar código fuente privado de un repositorio de GitHub conectado.

La vulnerabilidad «rompe efectivamente la seguridad de las extensiones de Chrome» al crear «una escalada de privilegios primitiva entre extensiones, algo que el modelo de seguridad de Chrome está diseñado explícitamente para evitar», escribió Gispan.

Un gráfico que muestra cómo una vulnerabilidad explota los límites de confianza en la extensión de Clade Chrome. (Fuente: LayerX)

Claude se basa en el texto, la semántica de la interfaz de usuario y la interpretación de capturas de pantalla para tomar decisiones, todo lo cual un atacante puede controlar en el lado de entrada. Los investigadores modificaron la interfaz de usuario de Claude para eliminar etiquetas e indicadores relacionados con información confidencial, como contraseñas y comentarios compartidos, y luego le solicitaron a Claude que compartiera los archivos con un servidor externo.

Eso significa que los defensores de la ciberseguridad a menudo no tienen nada obviamente malicioso que detectar. Cuando hay actividad visible, se puede pedir al modelo que cubra sus huellas eliminando correos electrónicos y otras evidencias de sus acciones.

Ax Sharma, jefe de investigación de Manifold Security, calificó la vulnerabilidad como «una demostración útil de por qué monitorear los agentes de IA en la capa de aviso es fundamentalmente insuficiente».

«La parte más sofisticada de este ataque no es la inyección, sino que el entorno percibido por el agente fue manipulado para producir acciones que parecían legítimas desde adentro», dijo Sharma. «Ese es el tipo de amenaza para la que la industria necesita construir defensas».

Gispan dijo que LayerX informó la falla a Anthropic el 27 de abril, pero afirmó que la compañía solo emitió una solución «parcial» al problema. Según LayerX, Anthropic respondió un día después para decir que el error era un duplicado de otra vulnerabilidad que ya se estaba abordando en una actualización futura.

Si bien esa solución, emitida el 6 de mayo, introdujo nuevos flujos de aprobación para acciones privilegiadas que hicieron más difícil explotar la misma falla, Gispan dijo que aún podía hacerse cargo del agente de Claude en algunos escenarios.

«Cambiar al modo 'privilegiado', incluso sin la notificación o el consentimiento del usuario, permitió eludir estos controles de seguridad e inyectar mensajes en la extensión Claude, como antes», escribió Gispan.

Anthropic no respondió a una solicitud de comentarios de CyberScoop sobre los esfuerzos de investigación y mitigación.

Derek B. Johnson

Escrito por Derek B. Johnson

Derek B. Johnson es reportero de CyberScoop, donde su área incluye la ciberseguridad, las elecciones y el gobierno federal. Antes de eso, ha brindado una cobertura galardonada de noticias sobre ciberseguridad en los sectores público y privado para varias publicaciones desde 2017. Derek tiene una licenciatura en periodismo impreso de la Universidad de Hofstra en Nueva York y una maestría en políticas públicas de la Universidad George Mason en Virginia.