Volver al Blog
Ciberseguridad 31 de marzo de 2026 7 min read

Se Filtra Todo el Código Fuente de Claude Code vía npm — 512,000 Líneas Exponen Herramientas Falsas, Detección de Frustración y Modo Encubierto

Un paquete npm mal configurado incluyó source maps apuntando a un zip público en el bucket de Cloudflare R2 de Anthropic. En horas, más de 41,500 forks en GitHub preservaron las 1,900 archivos del código completo — el segundo fallo de seguridad de Anthropic en una semana.

Se Filtra Todo el Código Fuente de Claude Code vía npm — 512,000 Líneas Exponen Herramientas Falsas, Detección de Frustración y Modo Encubierto

Anthropic publicó un archivo de source map en la versión 2.1.88 del paquete npm @anthropic-ai/claude-code. Ese archivo apuntaba a un zip alojado en un bucket público de Cloudflare R2. Dentro: 1,900 archivos TypeScript, 512,000 líneas de código — toda la base de código de Claude Code, legible, sin ofuscar.

El investigador de seguridad Chaofan Shou fue el primero en detectarlo. En cuestión de horas, el código fue replicado en GitHub con más de 41,500 forks. Anthropic puede pedir que lo retiren. Internet ya siguió adelante.

Es el segundo fallo de seguridad grave de Anthropic en cinco días, tras la exposición accidental de documentos internos sobre su modelo inédito Mythos el 26 de marzo.

Cómo ocurrió

Claude Code está construido con Bun, que genera source maps por defecto a menos que se desactiven explícitamente. Alguien olvidó añadir *.map al .npmignore o configurar el bundler para omitir source maps en producción. Una sola mala configuración. El archivo pesaba 59.8 megabytes.

Anthropic lo calificó como “un problema de empaquetado por error humano, no una brecha de seguridad.” No se expusieron datos de clientes ni credenciales. Pero todo el harness agéntico — el código que indica a Claude cómo usar herramientas, aplicar barreras de seguridad y coordinar flujos multi-agente — ahora es público.

Qué revela el código

El código corre sobre Bun (no Node.js) y usa React con Ink para renderizar la interfaz de terminal. La arquitectura incluye unas 40 herramientas con control de permisos, un motor de consultas de 46,000 líneas que gestiona todas las llamadas a la API del LLM, y un sistema de orquestación multi-agente que lanza sub-agentes aislados para tareas paralelizables.

Los hallazgos más destacados:

Herramientas falsas y anti-destilación. Claude Code inyecta definiciones de herramientas falsas en los prompts del sistema para envenenar datos de entrenamiento de competidores que graben tráfico de API. La función está controlada por un feature flag de GrowthBook (tengu_anti_distill_fake_tool_injection) y solo se activa para sesiones CLI propias. Un segundo mecanismo resume el razonamiento del asistente con firmas criptográficas, ocultando la cadena completa de pensamiento. Ambos se pueden eludir — un proxy MITM que elimine el campo anti_distillation anula el primero; la variable CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS desactiva ambos.

Detección de frustración. Una regex en userPromptKeywords.ts escanea mensajes del usuario buscando insultos y señales de frustración — variaciones de palabrotas, “so frustrating,” “this sucks” y frases similares. Más rápido y barato que hacer inferencia para clasificación básica de sentimiento, pero llamativo verlo hardcodeado en un producto LLM.

Modo encubierto. El módulo undercover.ts elimina toda referencia interna de Anthropic cuando opera en repositorios externos. Suprime menciones de nombres en clave como “Capybara” y “Tengu”, canales de Slack, nombres de repos internos y “Claude Code” mismo. Los comentarios del código dicen que “NO hay force-OFF” — solo force-ON vía variable de entorno. Los commits escritos por IA de empleados de Anthropic en proyectos open-source no llevan ninguna indicación de autoría por IA.

Atestación nativa de cliente. Las peticiones a la API incluyen un hash placeholder que la capa HTTP nativa de Bun (basada en Zig) reemplaza con un valor calculado antes de transmitir. El servidor valida esto para verificar criptográficamente que las peticiones provienen de binarios legítimos de Claude Code — un mecanismo tipo DRM que opera por debajo del runtime de JavaScript, invisible a toda inspección a nivel JS.

KAIROS, agente autónomo. Infraestructura tras feature flag para un modo de agente siempre activo aún no lanzado, incluyendo un skill /dream para “destilación nocturna de memoria”, logs diarios append-only, suscripciones a webhooks de GitHub, workers daemon en segundo plano y ciclos de refresco programados cada 5 minutos. La infraestructura para agentes persistentes ya existe en el código.

Seguridad en bash. Cada comando shell pasa por 23 controles de seguridad numerados: 18 builtins de Zsh bloqueados, defensas contra expansión de iguales en Zsh (=curl eludiendo controles de permisos), inyección de espacios de ancho cero e inyección de null-byte en IFS — vulnerabilidades descubiertas durante revisión de HackerOne.

Desperdicio de recursos. Un comentario en autoCompact.ts señala que a fecha de 10 de marzo de 2026, “1,279 sesiones tuvieron más de 50 fallos consecutivos (hasta 3,272) en una sola sesión, desperdiciando ~250K llamadas API/día globalmente.” La solución: limitar los fallos consecutivos a 3.

Calidad del código. print.ts tiene 5,594 líneas con una sola función de 3,167 líneas anidada 12 niveles. El código también usa Axios para peticiones HTTP — la misma librería que fue comprometida en un ataque de cadena de suministro hoy mismo.

Qué implica

El código del harness es la ventaja competitiva. Codifica años de decisiones sobre cómo hacer fiable un agente de IA — sistemas de permisos, orquestación de herramientas, economía de caché de prompts, barreras de seguridad. Los competidores ahora tienen una implementación de referencia completa para estudiar.

Para Anthropic, dos exposiciones accidentales en una semana — primero Mythos, ahora el código completo — plantea preguntas sobre sus procesos internos de build y release. La solución para fugas de source maps es trivial. El coste reputacional de cometerlo dos veces no lo es.

El código ya se está utilizando. Múltiples proyectos open-source están reconstruyendo la arquitectura de Claude Code en Rust y otros lenguajes, con documentación completa de cada funcionalidad no divulgada. El genio no va a volver a la botella.

Anthropic Claude Code Source Leak Cybersecurity