CV
Security14 min read0 views

Filtración del código fuente de Claude Code: herramientas falsas, modo encubierto y KAIROS

Qué ocurrió: un Source Map olvidado en NPM

El 31 de marzo de 2026, Anthropic publicó accidentalmente un archivo .map (source map) dentro del paquete npm de Claude Code. Los source maps son archivos de depuración que mapean código minificado al código fuente original legible — nunca deberían incluirse en builds de producción.

En cuestión de horas, el código fuente completo en TypeScript fue replicado en GitHub, Hacker News y Twitter. Solo el hilo de Hacker News acumuló más de 2,000 upvotes, convirtiéndolo en una de las mayores filtraciones relacionadas con IA del año.

Código fuente en pantalla — representando el código filtrado

⚠️ Importante: Esta fue la segunda exposición accidental de Anthropic en una sola semana, tras una filtración de la especificación del modelo días antes.

La escala: 512K líneas en 1,884 archivos

El código filtrado es masivo — aproximadamente 512,000 líneas de TypeScript en 1,884 archivos. No es un simple wrapper de API; es un sistema agéntico de producción sofisticado con renderizado de terminal personalizado, orquestación multi-agente y capas profundas de seguridad.

Estadísticas clave del análisis:

MétricaValor
Total de líneas de código~512,000
Número de archivos1,884
LenguajeTypeScript (runtime Bun)
Archivo más grande (print.ts)5,594 líneas
Función más grande3,167 líneas, 12 niveles de anidamiento
Validadores de seguridad para Bash23 verificaciones

Causa raíz: un bug de Bun

La causa raíz fue rastreada a un bug de Bun (oven-sh/bun#28001), reportado el 11 de marzo, que causa que los source maps se sirvan en builds de producción a pesar de que la documentación indica que deberían eliminarse. El issue permanecía sin resolver al momento de la filtración.

Irónicamente, la propia elección de toolchain de Anthropic — Bun, que ellos mismos adquirieron — puede haber sido la causa directa de la exposición.

bash
1# El paquete npm contenía el source map que debió haber sido excluido
2npm pack @anthropic/claude-code
3tar -tf anthropic-claude-code-*.tgz | grep ".map"
4# claude-code.js.map  ← Este archivo expuso todo

Anti-Destilación: herramientas falsas para envenenar competidores

Uno de los hallazgos más polémicos fue el mecanismo anti-destilación. Claude Code envía un flag anti_distillation: ['fake_tools'] a los servidores de Anthropic, que dispara la inyección de definiciones de herramientas falsas en los system prompts.

El propósito declarado: envenenar los datos de entrenamiento de modelos de IA competidores que podrían estar grabando el tráfico de API para entrenar sus propios sistemas.

typescript
1// Anti-destilación requiere las CUATRO condiciones simultáneamente:
2// 1. Flag de compilación habilitado
3// 2. Entrypoint CLI (no uso como librería)
4// 3. Proveedor first-party (API de Anthropic, no terceros)
5// 4. Feature flag activo
6
7if (compileFlag && isCliEntry && isFirstParty && featureEnabled) {
8  headers['anti_distillation'] = ['fake_tools'];
9}

Un mecanismo secundario almacena el texto del asistente entre llamadas a herramientas, lo resume criptográficamente y solo devuelve los resúmenes a partes externas — restringiendo la visibilidad de la cadena de razonamiento.

Modo Encubierto: ocultando la identidad de Anthropic

Un archivo llamado undercover.ts implementa la ocultación de información interna de Anthropic al contribuir en repositorios externos. El sistema instruye al modelo para evitar mencionar:

  • Nombres código internos como "Capybara" o "Tengu"
  • Canales de comunicación internos
  • Nombres de repositorios
  • Incluso "Claude Code" en sí mismo

Críticamente, el código declara: "There is NO force-OFF. This guards against model codename leaks." Esto significa que el ocultamiento no puede desactivarse, permitiendo contribuciones de IA a proyectos open-source sin atribución transparente.

🔴 Preocupación ética: Esto plantea serias preguntas sobre la transparencia de la IA en contribuciones open-source. Si Claude Code contribuye a repositorios públicos mientras oculta su identidad, los mantenedores podrían no saber que están revisando código generado por IA.

KAIROS: la hoja de ruta del agente autónomo

Quizás la revelación estratégica más significativa de la filtración fueron las extensas referencias a una funcionalidad no lanzada llamada KAIROS — un modo de agente autónomo. El código reveló:

  • Un skill /dream para "destilación nocturna de memoria"
  • Logging diario de solo adición (append-only)
  • Suscripciones a webhooks de GitHub para acciones basadas en eventos
  • Workers daemon en segundo plano
  • Ciclos de actualización programados cada 5 minutos con cron
  • Flags de compilación: KAIROS, COORDINATOR_MODE, VOICE_MODE

Esto revela la hoja de ruta de Anthropic: Claude Code se está construyendo hacia una orquestación multi-agente completamente autónoma con memoria persistente y ejecución en segundo plano.

Motor de terminal personalizado: técnicas de videojuegos

Anthropic no usó librerías de UI de terminal existentes — construyeron un motor de renderizado React personalizado para la terminal con técnicas de motor de videojuegos:

  • Pools de caracteres respaldados por Int32Array
  • Metadatos codificados con bitmask para cada celda
  • Optimización de movimiento de cursor reduciendo llamadas a stringWidth en ~50x durante el streaming
  • Una implementación en TypeScript del sistema de layout Yoga flexbox de Meta
  • Tracking de ratón con hit-testing
  • Soporte para hyperlinks en terminal

También construyeron una implementación personalizada de Vim que abarca múltiples archivos con operadores, text objects, funciones de movimiento y una máquina de estados de 490 líneas — más completa que la mayoría de plugins Vim de terceros.

Seguridad: 23 validadores de Bash y más

El módulo de seguridad es impresionante — un sistema de 2,600 líneas que valida cada comando shell contra patrones de ataque sofisticados:

typescript
1// Las verificaciones de seguridad incluyen defensas contra:
2// - Ataques de expansión "=cmd" de Zsh
3// - Inyección de heredoc
4// - Exploits de ANSI-C quoting
5// - Ataques de sustitución de procesos
6// - Inyección de caracteres unicode zero-width
7// - Ataques de null-byte IFS
8// - Y 17 patrones más...

El sistema de permisos usa un modelo de doble vía:

  1. Pattern matching (reglas glob/regex) para decisiones rápidas
  2. Clasificación basada en ML vía llamadas a la API de Claude para casos ambiguos

El clasificador de auto-aprobación tiene el nombre humorístico yoloClassifier.ts — pero a pesar del nombre, implementa una evaluación de dos etapas con seguimiento de métricas.

El sistema de mascotas

Uno de los hallazgos más inesperados: Claude Code incluye un sistema de mascotas completo con:

  • 18 especies de compañeros
  • Generación de personajes basada en estadísticas (DEBUGGING, PATIENCE, CHAOS, WISDOM, SNARK)
  • Niveles de rareza (1% legendario)
  • Frames de animación ASCII
  • "Bones" determinísticos vinculados a IDs de usuario (previniendo trampas en archivos de configuración)
  • "Souls" (nombres, personalidades) generados por IA y almacenados por separado
💡 Dato curioso: El nombre de una especie de compañero coincidía con el nombre código de un modelo no lanzado. En lugar de renombrar la especie, los desarrolladores codificaron los 18 nombres de especies en hexadecimal para evitar que la cadena literal apareciera en el código compilado.

Bugs de rendimiento expuestos

Un comentario revelador en el código expuso un problema de rendimiento significativo:

typescript
1// "1,279 sesiones tenían 50+ fallos consecutivos
2// (hasta 3,272) en una sola sesión,
3// desperdiciando ~250K llamadas API/día globalmente."
4//
5// Fix: limitar fallos consecutivos a 3 por sesión
6const MAX_CONSECUTIVE_FAILURES = 3;

Un fix de tres líneas resolvió un problema que desperdiciaba 250,000 llamadas API por día a nivel global. Este tipo de insight sobre la economía de sistemas de IA en producción rara vez se hace público.

Attestation nativo: bloqueando a terceros

El código implementa un sistema de attestation nativo del cliente. Las peticiones API incluyen placeholders cch=00000 que son reemplazados por el stack HTTP nativo de Bun (escrito en Zig) con hashes criptográficos antes de la transmisión.

Esta verificación prueba que las peticiones se originan desde binarios legítimos de Claude Code, no desde clientes falsificados. El mecanismo opera por debajo del runtime de JavaScript, invisible a la inspección de código.

Esto es particularmente relevante dado que la filtración ocurrió diez días después de que Anthropic emitiera demandas legales a OpenCode, una alternativa open-source, para que eliminara la autenticación de Claude — impidiendo efectivamente que herramientas de terceros accedieran a las APIs de Anthropic a precios de suscripción.

Concepto de ciberseguridad — representando los sistemas de attestation y seguridad

Reacción de la comunidad

La filtración generó discusión masiva en la comunidad de desarrolladores:

  • Hacker News: 2,047 upvotes en el hilo principal, 1,344 upvotes en el análisis técnico
  • GitHub: Múltiples repositorios espejo aparecieron en cuestión de horas
  • Un sitio de guía visual (ccunpacked.dev) se lanzó el 1 de abril con 1,045 upvotes
  • Múltiples blog posts independientes analizando el código se publicaron en 24 horas

Principales preocupaciones de la comunidad:

  1. Anti-destilación: ¿Es ético inyectar datos falsos para envenenar competidores?
  2. Modo encubierto: ¿Deberían las contribuciones de IA a open-source ser transparentes?
  3. Attestation del cliente: ¿Está Anthropic creando un jardín amurallado?
  4. Calidad del código: Un archivo de 5,594 líneas con 12 niveles de anidamiento generó críticas

Qué significa para la industria de la IA

Esta filtración es significativa más allá del código en sí:

  • Seguridad de la cadena de suministro: Incluso las principales empresas de IA cometen errores básicos en sus pipelines de build
  • Inteligencia competitiva: El mecanismo anti-destilación confirma que las empresas se defienden activamente contra la destilación de modelos a través del tráfico de API
  • Futuro de las herramientas de IA para código: KAIROS revela la trayectoria — agentes autónomos que se ejecutan en segundo plano, se suscriben a eventos y mantienen memoria persistente
  • Tensión open-source: La situación de OpenCode y el attestation del cliente muestran la tensión entre ecosistemas abiertos y plataformas comerciales de IA

Código estilo Matrix — representando la escala y complejidad del sistema filtrado

Conclusión

La filtración del código fuente de Claude Code dio a la comunidad de desarrolladores una mirada sin precedentes al interior de un asistente de IA para código en producción. Desde herramientas falsas diseñadas para envenenar competidores, hasta un sistema de mascotas oculto con rarezas legendarias, pasando por un framework de agente autónomo no lanzado — las 512,000 líneas de código cuentan una historia de ingeniería agresiva, defensividad competitiva y una visión de producto ambiciosa.

Si Anthropic abordará las preocupaciones éticas planteadas — particularmente sobre el modo encubierto y la anti-destilación — queda por verse. Pero algo es claro: la era de los asistentes de IA para código está entrando en una nueva fase, y la filtración de Claude Code corrió el telón sobre cómo luce ese futuro.

Share:
CV

Cristhian Villegas

Software Engineer specializing in Java, Spring Boot, Angular & AWS. Building scalable distributed systems with clean architecture.

Comments

Sign in to leave a comment

No comments yet. Be the first!

Related Articles