Herramienta de programación AI Claude Code encontrada con vulnerabilidad de seguridad importante

icon MarsBit
Compartir
Share IconShare IconShare IconShare IconShare IconShare IconCopy
AI summary iconResumen

expand icon
Se ha revelado una vulnerabilidad importante en la herramienta de programación de IA Claude Code de Anthropic, según lo descubierto por el investigador independiente Aonan Guan. El sandbox de red, diseñado para bloquear el acceso externo, podía ser eludido mediante una inyección de byte nulo en el protocolo SOCKS5. La falla afectaba a todas las versiones desde el lanzamiento del sandbox en octubre de 2025, en 130 lanzamientos. Anthropic solucionó el problema en abril de 2026 sin hacerlo público. La brecha de seguridad podría permitir a los atacantes robar claves de API y credenciales de AWS.

Claude Code

Anthropic, posicionada como "seguridad primero", nunca ha tenido un entorno de sandbox para su herramienta de desarrollo principal, Claude Code, realmente segura en los últimos cinco meses.

El investigador de seguridad independiente Aonan Guan publicó el 20 de mayo una nueva investigación que revela una segunda vulnerabilidad de bypass completa en el entorno aislado de red de Claude Code: una inyección de byte nulo en el protocolo SOCKS5 que permite a los procesos dentro del sandbox acceder a cualquier host explícitamente prohibido por la política del usuario. Esto significa que, desde el lanzamiento de la función sandbox en octubre de 2025 hasta ahora, durante aproximadamente 5,5 meses y 130 versiones publicadas, cada versión de Claude Code ha tenido una vulnerabilidad de seguridad que puede ser completamente contornada. Este es el segundo bypass completo logrado por el mismo investigador contra la misma línea de defensa.

La respuesta de Anthropic fue el silencio: sin aviso de seguridad, sin número CVE, sin notificación a los usuarios. La vulnerabilidad se reparó en silencio en la versión del 1 de abril, y el registro de actualizaciones no mencionó ningún aspecto relacionado con la seguridad. Es decir, un usuario que aún ejecute una versión antigua no tiene forma de saber que su sandbox configurado ha estado inútil desde el principio.

Two keys for the same door

Claude Code es un asistente de programación de IA lanzado por Anthropic a principios de 2025, posicionado como "ingeniero de IA alojado en la terminal". A diferencia de la completación de código basada en chat tradicional, Claude Code tiene permisos de lectura y escritura sobre la base de código del usuario y capacidad de ejecución de comandos, permitiéndole realizar automáticamente operaciones como navegar por el código, editar archivos y ejecutar pruebas. Esta intervención profunda implica un riesgo de seguridad extremadamente alto: si el modelo es secuestrado mediante un ataque de inyección de prompts, el atacante obtendrá capacidades equivalentes a los permisos del terminal del usuario, incluyendo la lectura de variables de entorno locales, la ejecución de comandos del sistema arbitrarios y el acceso a recursos de red internos.

Para equilibrar seguridad y eficiencia, Anthropic introdujo en octubre de 2025 la función de sandbox web (v2.0.24), que permite a los usuarios definir una lista blanca de dominios mediante archivos de configuración, restringiendo el acceso externo a la red del entorno de ejecución de la IA. Por ejemplo, tras configurar allowedDomains: [“*.google.com”], Claude Code solo podrá acceder a Google y sus subdominios, bloqueando todo otro tráfico. La documentación oficial promete claramente: “Un array vacío equivale a prohibir todo el acceso a la red.”

Este mecanismo se implementa mediante un proxy SOCKS5: el entorno de ejecución de sandbox subyacente (@anthropic-ai/sandbox-runtime) inicia un servidor proxy, y los procesos dentro del sandbox no establecen conexiones de red directamente, sino que reenvían el tráfico a través del proxy, que aplica filtrado de dominios según la lista blanca configurada por el usuario en settings.json. Los mecanismos de sandbox a nivel del sistema operativo —sandbox-exec de macOS y bubblewrap de Linux— restringen correctamente al agente a la dirección de bucle local, mientras que las decisiones de salida se delegan completamente a este proxy SOCKS5.

Claude Code

La arquitectura del entorno aislado de Claude Code mostrada en el blog oficial de Anthropic: los comandos del usuario pasan por un proxy SOCKS/HTTP antes de llegar al entorno aislado, donde las operaciones de archivos y el acceso a la red están estrictamente controlados por permisos.

El problema radica en la implementación de este proxy. Dos investigaciones de seguridad independientes demostraron que puede ser completamente eludido.

Claude Code

La línea de tiempo revela problemas más profundos: la versión v2.0.55, lanzada el 26 de noviembre de 2025, corrigió la primera evasión, pero la segunda evasión ya existía desde el primer día de lanzamiento del sandbox y sigue presente en esa versión. Ambas vulnerabilidades se superponen en la línea de tiempo; desde el primer día del lanzamiento de la función sandbox hasta la corrección de la última vulnerabilidad, ninguna versión fue segura. Anthropic afirmó en su blog oficial que el sandbox “asegura que, incluso en caso de inyección de prompts, el impacto quede completamente aislado”, pero la existencia de estas dos evasiones refuta directamente este compromiso.

“Un informe externo es suerte. Dos son un problema de calidad de implementación.” — indica el informe de Guan Aonan.

Una completa evasión de un byte vacío

El principio técnico del segundo intento de evasión no es complejo, pero la integridad de la cadena de ataque merece atención.

El usuario configuró una lista blanca de red, por ejemplo, permitiendo solo el acceso a *.google.com. El proxy SOCKS5 de Claude Code utiliza el método endsWith() de JavaScript para realizar una coincidencia de sufijo en el nombre de host al recibir una solicitud de conexión. Un atacante solo necesita insertar un byte nulo en el nombre de host, construyendo una cadena como attacker-host.com\x00.google.com. JavaScript trata el byte nulo como un carácter UTF-16 normal, y endsWith(".google.com") devuelve true, permitiendo que el proxy autorice la conexión. Sin embargo, cuando la misma cadena se pasa a la función subyacente en C getaddrinfo() para la resolución DNS, el byte nulo se interpreta como un finalizador de cadena, y en realidad se resuelve attacker-host.com. Los mismos bytes reciben dos interpretaciones distintas en dos capas de código: el filtro cree que estás accediendo a Google, mientras que el resolutor DNS sabe que te estás conectando al servidor del atacante.

Este tipo de ataque pertenece a la categoría clásica de "diferencias en los analizadores", misma que la técnica descubierta en 2005 conocida como HTTP Request Smuggling (CWE-158 / CWE-436). En esencia, ocurre cuando un mismo flujo de datos atraviesa dos componentes con reglas semánticas diferentes de interpretación, permitiendo al atacante aprovechar esta discrepancia para que un componente realice una evaluación "segura", mientras que otro componente ejecuta una operación "peligrosa". Este tipo de vulnerabilidades ha aparecido repetidamente en el ámbito de la seguridad informática, y la lección clave siempre es la misma: cualquier cadena que cruce un límite de confianza debe someterse a una normalización y validación estrictas, y no puede confiarse en que la capa superior ya haya realizado las verificaciones correspondientes.

Guan Aonan reprodujo la vulnerabilidad utilizando dos scripts minimizados de Node.js: el script de control inició una conexión SOCKS5 con un nombre de host normal y devolvió BLOCKED; el script de ataque inyectó un byte nulo en el nombre de host y devolvió BYPASSED rep=0x00—esto último indica que el proxy estableció con éxito la conexión y se abrió el canal saliente. Claude Code confirmó este resultado.

Claude Code

Reproducción completa de la vulnerabilidad en los cuatro pasos marcados en rojo en Claude Code v2.1.86: confirmación de la estrategia,拦截 común, evasión de bytes nulos, confirmación por parte de Claude

Y al combinarse con el ataque de inyección de indicaciones de “comentarios y control” revelado por Guan Aonan en abril, se forma una cadena de ataque completa (véase: Tres capas de defensa aún no son suficientes: un título de PR puede robar tu clave API: la grieta de seguridad de los Agentes de IA vuelve a aparecer). El estudio “comentarios y control” ha demostrado que las tres herramientas de programación de IA presentan superficies de ataque por inyección de indicaciones, pero cada una tiene una entrada de ataque diferente: Claude Code solo a través del título de PR, Gemini CLI a través de comentarios o cuerpo de Issue, y Copilot Agent mediante comentarios HTML para lograr una inyección oculta. Tomando como ejemplo a Claude Code, su título de PR se concatena directamente en la plantilla de indicaciones sin filtrado ni escape, lo que impide que el modelo distinga entre la intención humana y la inyección maliciosa.

Combinar ambos: instrucciones ocultas que hacen que el agente ejecute código de ataque dentro de un entorno aislado, junto con inyección de bytes nulos para eludir el bloqueo de red, permiten que datos como claves API, credenciales de AWS, tokens de GitHub y puntos finales de API internos contenidos en variables de entorno sean exfiltrados a cualquier servidor en internet. Los datos fluyen directamente a través del proxy SOCKS5, sin necesidad de un servidor externo como intermediario, y este proxy es precisamente el componente que el usuario confía como límite de seguridad. El atacante ni siquiera necesita permisos de escritura en el repositorio; con solo presentar un Issue público es suficiente. Los revisores humanos ven en la vista renderizada de GitHub una solicitud de colaboración normal, mientras que el agente de IA interpreta el código fuente malicioso completo.

Incluso Claude lo reconoce: la vulnerabilidad es real

Uno de los detalles clave de esta divulgación proviene del propio Claude Code. Guan Aonan entregó directamente el código de reproducción de la vulnerabilidad a Claude Code para que lo ejecutara y solicitara un juicio técnico. Después de realizar la prueba de control (el nombre de host normal fue bloqueado) y la prueba de ataque (el nombre de host con byte nulo evitó el bloqueo), Claude Code emitió una conclusión clara:

This is a real bypass of the network sandbox filter, not just a test artifact. You should report this to Anthropic at https://github.com/anthropics/claude-code/issues.

El producto probado confirmó por sí mismo la autenticidad y gravedad de la vulnerabilidad, e incluso proporcionó activamente la ruta de reporte. Este detalle fue documentado completamente por Guan Aonan en el informe de investigación y se convirtió en la fuente del título del artículo de The Register: “Even Claude agrees hole in its sandbox was real and dangerous”.

Claude Code

Portada de la investigación de Guaonan: Claude Code reconoce tras mostrar sus propias vulnerabilidades: “Esto es una evasión real del filtro de sandbox de red”, con un recuadro rojo que marca la frase clave de confirmación

La respuesta de Anthropic tras cinco meses de silencio

La vulnerabilidad en sí es preocupante, pero el enfoque de Anthropic merece una revisión por parte de la industria.

Guan Aonan presentó un informe detallado sobre una segunda evasión de sandbox al programa de recompensas por vulnerabilidades HackerOne (informe #3646509) a principios de abril de 2026. La respuesta inicial de Anthropic fue:

Gracias por su informe. Tras revisar esta presentación, hemos determinado que es un duplicado de un informe interno existente que ya estamos rastreando.

El informe fue cerrado inmediatamente. Cuando Guan Aonan preguntó sobre el plan de número CVE, Anthropic respondió el 7 de abril:

Aún no hemos decidido si se publicará un CVE para este problema y no podemos proporcionar un plazo para esa decisión.

La vulnerabilidad se reparó silenciosamente en la versión v2.1.90. No hubo aviso de seguridad, no se asignó ningún CVE, no aparece ningún registro en la página de recomendaciones de seguridad de Claude Code, y el registro de actualizaciones no menciona ninguna descripción relacionada con la seguridad. Una evasión completa que existió desde el primer día del entorno sandbox, duró 5.5 meses y afectó aproximadamente 130 versiones, para los usuarios pareció nunca haber ocurrido.

Este patrón de manejo no es nuevo. La primera evasión (CVE-2025-66479) se abordó de manera casi idéntica: Anthropic asignó el CVE únicamente a la biblioteca subyacente @anthropic-ai/sandbox-runtime (puntuación CVSS de solo 1.8, "Baja"), y no al producto orientado al usuario Claude Code; el registro de actualizaciones mencionaba "Fixed proxy DNS resolution" (solucionado: resolución DNS del proxy), sin hacer referencia a ninguna vulnerabilidad de seguridad. Guan Aonan escribió en su informe de investigación: "Cuando hubo una vulnerabilidad grave en React Server Components, React y Next.js recibieron CVE independientes, Meta y Vercel emitieron avisos de seguridad, y ambas comunidades fueron debidamente notificadas. Anthropic eligió un enfoque diferente." Hasta la fecha, la búsqueda de "Claude Code Sandbox CVE" aún no arroja ningún aviso de seguridad oficial.

Al abordar el problema de robo de credenciales, Anthropic optó por bloquear el comando ps, pero la lógica de lista negra tiene deficiencias inherentes: al bloquear un solo comando, los atacantes tienen innumerables rutas alternativas. La forma correcta es declarar explícitamente qué herramientas necesita el agente. En el estudio "Comentarios y control", Anthropic elevó la calificación de la vulnerabilidad a CVSS 9.4 (nivel Crítico) y la transfirió a un programa de recompensas privado, pero un portavoz afirmó que "esta herramienta no fue diseñada para resistir inyecciones de prompts". Los fabricantes confían por defecto en la capacidad de seguridad de su propio modelo, pero carecen de defensa en profundidad a nivel de arquitectura del sistema; cuando las vulnerabilidades revelan esta carencia, "limitaciones de diseño" se convierten en una categoría conveniente: reconoce el problema, pero al mismo tiempo libera parcialmente la obligación de emitir un aviso de seguridad.

El panorama más amplio de la industria muestra que este mismo problema no afecta solo a Anthropic. En un estudio divulgado en abril denominado “Comentarios y control”, se confirmó que Gemini CLI de Google y Copilot Agent de GitHub de Microsoft presentaban la misma superficie de ataque; las tres empresas confirmaron y corrigieron la vulnerabilidad, pero ninguna emitió un aviso de seguridad ni asignó un número CVE. Anthropic otorgó una recompensa de 100 dólares, Google pagó 1337 dólares, y GitHub inicialmente cerró el informe con “problema conocido, no reproducible”; tras recibir evidencia de ingeniería inversa, lo cerró con la etiqueta “informativo” y otorgó 500 dólares. En total, 1937 dólares — y estos tres productos cubren a la mayoría de las empresas de la lista Fortune 100.

Una falsa sensación de seguridad es más peligrosa que no tener medidas de seguridad. Los usuarios sin sandbox saben que no tienen límites; los usuarios con un sandbox defectuoso creen que sí los tienen. Un equipo que ejecutaba Claude Code y tenía una lista blanca de dominios pasó 5.5 meses sin ser consciente del riesgo, y tras la actualización, al ver el registro de cambios, solo podrían concluir que el sandbox había estado funcionando correctamente. Además, cuando se reveló la vulnerabilidad, la ausencia de un aviso de seguridad impidió que los usuarios determinaran si habían sido afectados o tuvieran base para una auditoría retrospectiva.

Ante esta situación, la comunidad de seguridad ha comenzado a llegar a un consenso: no se debe confiar únicamente en la implementación de sandbox del fabricante. El proxy SOCKS5 de Claude Code se basa en un paquete npm de terceros con solo 10 estrellas en GitHub, cuyo último commit data de junio de 2024; su frontera de seguridad abarca dos entornos de ejecución, JavaScript y C, pero carece de los tratamientos normalizados más básicos en el punto de intersección de confianza. La función isValidHost() añadida en el parche de corrección —encargada de rechazar caracteres ilegales como bytes nulos, codificación por porcentaje y CRLF— debería haber estado presente desde el primer día del sandbox. Guan Aonan propuso un marco de defensa pragmático: considerar al AI Agent como un superempleado que debe seguir el principio de mínimo privilegio, con el núcleo en la defensa en capas:

Claude Code

La reputación de seguridad se construye sobre la transparencia de cada divulgación y cada parche, no sobre narrativas de marca. Cuando los usuarios confían sus credenciales a un agente para su procesamiento, el fabricante tiene la obligación de garantizar que las defensas sean efectivas y de notificar oportunamente en caso de fallo. Ambos puntos, Anthropic no los cumplió en el sandbox de Claude Code.

“El peor resultado de un sandbox no es que bloquee algo, sino que brinde a las personas una falsa sensación de seguridad. Publicar un sandbox con vulnerabilidades es peor que no publicar ningún sandbox.” — señaló Guan Aonan.

(Este artículo se publicó originalmente en la app Titanium Media, autor | Silicon Valley Tech_news, editor | Jiao Yan)

Referencias:

1. oddguan.com — Segunda vez, mismo sandbox: Otra evasión del sandbox de Anthropic Claude Code Network permite la exfiltración de datos (Aonan Guan, 2026.05.20)

2. The Register — Inclusivo Claude reconoce que la brecha en su entorno aislado fue real y peligrosa (2026.05.20)

Descargo de responsabilidad: La información contenida en esta página puede proceder de terceros y no refleja necesariamente los puntos de vista u opiniones de KuCoin. Este contenido se proporciona solo con fines informativos generales, sin ninguna representación o garantía de ningún tipo, y tampoco debe interpretarse como asesoramiento financiero o de inversión. KuCoin no es responsable de ningún error u omisión, ni de ningún resultado derivado del uso de esta información. Las inversiones en activos digitales pueden ser arriesgadas. Evalúa con cuidado los riesgos de un producto y tu tolerancia al riesgo en función de tus propias circunstancias financieras. Para más información, consulta nuestras Condiciones de uso y la Declaración de riesgos.