Ciberseguridad··4 min de lectura

Claude Code puede ejecutar código del atacante al resumir una web

Un investigador logró ejecutar código arbitrario en Claude Code en hasta el 80% de sus intentos. El fallo es una cadena de inyección de prompts.

Claude Code, el agente de programación de Anthropic, puede terminar ejecutando el código de un atacante si le pides que resuma una página web. El investigador Johann Rehberger, conocido como wunderwuzzi, lo demostró en hasta el 80% de sus intentos. La cadena de ataque aprovecha el modo Auto, que es el predeterminado desde mediados de agosto, y juega con las decisiones que el propio agente toma de forma autónoma.

Rehberger, que ha pasado años desmontando agentes de IA, publicó el hallazgo en su blog con un vídeo. El ataque comienza con un sitio web disfrazado de archivo de notas. Cuando Claude Code intenta leer la página con su herramienta WebFetch, el servidor responde con un error 415 (tipo de medio no soportado). Ante eso, el agente recurre a Bash con curl para obtener el contenido. El investigador nunca le ordena hacer eso: simplemente hace que la herramienta preferida falle.

El sitio responde con una redirección 303 a un archivo ZIP, que Claude descarga. Dentro hay metadatos, un README, siete registros codificados, un binario de macOS para decodificarlos y un archivo Python llamado struct.py. Claude se niega a ejecutar el binario, tal como su entrenamiento de seguridad le indica. Pero Rehberger contaba con eso. "Es lo planeado y lo que el atacante quiere", escribió. Al no poder usar el decodificador suministrado, el modelo escribe el suyo propio. "Irónicamente, esa decisión de seguridad es el camino de explotación", añadió.

El decodificador que escribe Claude importa base64, y el módulo base64 estándar importa struct. Python busca primero en el directorio local, encuentra el struct.py del atacante y lo carga en lugar del real. Es el clásico module shadowing, un problema conocido desde hace décadas. Rehberger usó ChatGPT para ofuscar el archivo malicioso y que pasara los controles de seguridad de Claude. El archivo lanza un proceso Python separado, descarga un payload remoto y se comunica con un servidor de comando y control. El payload abre la calculadora, la forma habitual de demostrar ejecución arbitraria de código.

En otra variante, struct.py lanza una sesión de Claude Code en segundo plano con claude -p. La inyección deja de ser una ejecución remota de código y se convierte en un nuevo agente. "El Claude anidado tiene su propio acceso a herramientas y contexto", explicó Rehberger. En sus pruebas, el agente hijo ejecutó whoami, uname e id, abrió la calculadora y escribió archivos en el directorio personal.

Probó tres variantes cinco veces cada una y obtuvo tasas de éxito de entre el 60% y el 80%. Rehberger es cauto al interpretar los resultados: "Yo diría que son representativos de un ataque motivado, pero no exhaustivos".

Anthropic lo ve como algo esperado

Rehberger informó del fallo a Anthropic, que le respondió que el comportamiento es el esperado. Según su paráfrasis de la respuesta, "Auto Mode es una función de conveniencia respaldada por un clasificador de mejor esfuerzo, no una garantía de seguridad". Su lectura es que el clasificador nunca tuvo que detectar cadenas de inyección ensambladas a partir de pasos que individualmente parecen inofensivos. La verdadera frontera, argumenta, es el aislamiento del sistema operativo y el control de salida de red. "No confíes en la salida del modelo", escribió. The Register contactó a Anthropic y no obtuvo respuesta.

Rehberger ya había encontrado fallos similares en Claude antes. En octubre pasado, The Register cubrió su trabajo mostrando cómo Claude podía ser convencido para exfiltrar datos privados. El patrón es siempre el mismo: un modelo con herramientas, al leer contenido que no ha escrito, sigue las instrucciones que encuentra.

Los límites de uso, otro dolor de cabeza

La semana también fue incómoda para Anthropic por una decisión propia sobre los límites de uso de Claude Code. El 29 de agosto, la cuenta ClaudeDevs anunció que "aumentaría permanentemente los límites semanales estándar en Claude Code en un 25%" a partir del 14 de septiembre, y que el aumento actual del 50% se mantendría hasta entonces. Como el nuevo límite es un 25% más alto que el original, pero un 17% más bajo que el actual, la noticia se interpretó como una reducción. Anthropic reconoció en una respuesta: "Comparado con hoy, esto supone una reducción del 17% en los límites semanales de Claude Code". La primera publicación acumuló 6,7 millones de visitas; la respuesta, 1,1 millones. Una nota de la comunidad en X señaló el recorte, y varios medios lo destacaron como una disminución.

Anthropic ya tiene problemas legales por los límites de uso. En junio, TNW informó de una demanda que acusaba a la empresa de vender de más el uso disponible en sus planes Claude Max de 200 dólares.

Lo que queda por ver es si Anthropic cambiará su postura sobre Auto Mode o reforzará las defensas. Mientras tanto, la recomendación de Rehberger es clara: ejecutar agentes de codificación en sandboxes.

##Relacionado