28 puntos por GN⁺ 29 일 전 | 4 comentarios | Compartir por WhatsApp
  • A través de los archivos source map (map) del registro de npm, quedó expuesto externamente todo el código fuente de Claude Code, revelando su estructura interna y sus funciones
  • Los archivos filtrados incluyen componentes clave como system prompts, telemetría, bypass mode y Undercover Mode
  • Se señala como causa la falta de configuración de .npmignore y la generación predeterminada de source maps del herramienta de compilación bun
  • En el código se observó que casi no hay reglas de protección ni de prevención de sesgos, y que solo existe una protección mínima del tono
  • En la comunidad lo satirizaron como una “auto-open-sourceización de la IA”, y el caso llamó la atención como un incidente de filtración masiva causado por un descuido en la gestión de seguridad

Incidente de filtración del código fuente de Claude Code

  • Se confirmó que todo el código fuente de Claude Code quedó expuesto externamente a través de los archivos source map (map) del registro de npm
    • El enlace publicado corresponde a un archivo comprimido en formato src.zip, que incluye la estructura del código y funciones internas
    • Como resultado, quedaron al descubierto componentes internos como system prompts, telemetría, bypass mode y Undercover Mode
  • Se menciona como el segundo incidente de filtración no intencional que Anthropic sufre en un año
    • En la comunidad señalaron como causa un error de configuración de compilación: “alguien no agregó los archivos *.map a .npmignore
    • Como la herramienta de compilación bun genera source maps por defecto, también se apuntó a que no se desactivó esa opción
  • Algunos usuarios malinterpretaron estos archivos filtrados como si fueran el modelo Claude o código de acceso al backend,
    • pero los source maps solo muestran la estructura de la app, funciones y flujo del código, y no incluyen pesos del modelo ni permisos de acceso al sistema
    • Por eso, no se trata de un modelo ejecutable, sino de algo útil solo para ingeniería inversa, búsqueda de bugs y análisis de arquitectura
  • El código filtrado incluía un subsistema llamado Undercover Mode,
    • diseñado para evitar que Claude exponga por error información interna
    • Sin embargo, por un error de configuración de desarrolladores humanos, esa misma función terminó quedando expuesta al exterior
  • Quienes analizaron el código señalaron que no hay reglas de prevención de sesgos ni de manejo de clases protegidas
    • No existen guardrails, filtros de palabras clave ni clasificadores relacionados con atributos sensibles como raza, género o religión
    • Se confirmó que solo existe “Minimal tone protection” y que no hay políticas de mitigación de sesgos

Reacción y debate en la comunidad

  • En la comunidad describieron el incidente como la “ironía de la open sourceización”, junto con bromas como “el repositorio quiere ser libre
    • Hubo muchas reacciones satíricas como “Claude se liberó a sí mismo” o “la IA se volvió open source por su cuenta”
    • También se difundió humor crítico del tipo “crearon la mejor herramienta de coding con IA del mundo y se olvidaron del *.map”
  • Algunos usuarios advirtieron sobre los riesgos de seguridad
    • criticando que se descargara sin pensarlo un enlace r2.dev de origen desconocido,
    • y con reacciones autocríticas como “la comunidad que hablaba de seguridad en IA hizo clic en un archivo zip sin verificar”
  • También surgieron preguntas como “¿es este el comienzo del fin de Claude?”, o “¿fue una filtración intencional o un error?”
    • además de comentarios como “seguro alguien dentro de Anthropic tuvo el peor lunes de su vida”
  • En la comunidad también continuó la discusión sobre las posibles formas de aprovechar el código filtrado
    • aparecieron preguntas como “¿qué se puede hacer ahora?” o “¿se puede reconstruir Claude Code a partir de esto?”
    • incluso surgió el apodo “openclaude”, y se mencionó la posibilidad de que termine convertido en un proyecto open source no oficial

Información adicional

  • Los 5 archivos más grandes del código publicado son los siguientes
    1. cli/print.ts – 5,594 líneas
    2. utils/messages.ts – 5,512 líneas
    3. utils/sessionStorage.ts – 5,105 líneas
    4. utils/hooks.ts – 5,022 líneas
    5. screens/REPL.tsx – 5,005 líneas
  • Algunos usuarios compartieron material de análisis a nivel de código mediante un enlace de DeepWiki
  • En general, este incidente se evalúa como un caso que muestra cómo un simple error en la configuración de publicación de npm puede derivar en una filtración masiva de código de IA

4 comentarios

 
colus001 29 일 전

OpenCode es lo suficientemente bueno como para preguntarse si de verdad hace falta algo más jaja

 
bighead 29 일 전

Si ves que /buddy realmente funciona... hasta parece que fuera real..
Aunque también podría parecer un evento del Día de los Inocentes..

 
gggnews 29 일 전

https://github.com/kk-r/skillify-skill Por lo visto, también hubo alguien que liberó como open source una implementación que funciona de forma similar, aprovechando la filtración de unos comandos internos inesperadamente útiles jaja

 
GN⁺ 29 일 전
Comentarios en Hacker News
  • La mayor pérdida para Anthropic es que, a través de los feature flags, quedó expuesto el roadmap del producto
    En particular, salió a la luz un “assistant mode” (nombre clave: kairos) que todavía no se había anunciado
    Si pones el codebase a analizar con Claude, aparecen montones de funciones ocultas
    Por ejemplo, Buddy System (un personaje ASCII estilo tamagotchi) y Undercover mode (función para eliminar información interna de commits de empleados)

    • Dentro del “Undercover prompt” también aparece una referencia a Claude Capybara
      Enlace al código relacionado
    • La configuración personal de Claude Code que publiqué como open source hace tiempo quedó totalmente obsoleta por esto
      Ver clappie.ai
      Se superponen funciones como integración con Telegram (CC Dispatch), Crons (CC Tasks) y un perro ASCII animado (CC Buddy)
    • Si le preguntas directamente al binario con Claude, puede encontrar todos esos feature flags
    • En realidad, Buddy System es la broma del Día de los Inocentes/April Fools de este año
      La idea es que el usuario saque y críe una mascota tipo gacha, incluso con mascotas de rareza legendaria
      Estaba planeado publicarlo gradualmente para buscar viralidad en Twitter
  • Resulta interesante que Anthropic no haya eliminado realmente el paquete y solo lo haya marcado como deprecated con un mensaje de “Unpublished”
    npm unpublish elimina por completo el paquete, mientras que npm deprecate lo deja pero solo muestra una advertencia
    Parece que la intención era dificultar la descarga de los source maps
    Enlace al paquete npm

    • Los mensajes de commit quedaron en tono de broma, algo como “undo / undo / unpublish / ctrl-z / ctrl-c / No, stop…”
    • npm no permite hacer unpublish si hubo más de 100 descargas
    • Se nota que Anthropic está haciendo dogfooding de su propio producto y lo está probando activamente
    • Como saben que no puede desaparecer por completo de internet, parece que solo quisieron marcarlo como “no era para hacerse público”
  • No es la primera vez que pasa una filtración así
    En febrero de 2025 ya había ocurrido algo parecido
    Blog relacionado / Hilo en HN

  • Quedaron expuestos todos los spinner verbs
    Enlace al código relacionado

    • Ahora da 404, pero este enlace todavía funciona
    • Da gusto ver que incluye “reticulating”; ahora solo falta “splines” para que sea perfecto
    • Esas cadenas están en texto plano dentro del binario, así que se pueden encontrar fácilmente con grep
      Incluso se pueden reemplazar directamente
    • Me da curiosidad qué está pasando en la página de issues
    • Esto me recordó a un juego de 2015 que fue malinterpretado como contenido generado por IA por una función parecida
      Ya vivimos en un mundo donde hasta un chiste pequeño despierta sospechas de IA
  • src/cli/print.ts es la función más compleja de todo el codebase
    Tiene 3,167 líneas, 12 niveles de anidación, 486 puntos de bifurcación y 21 funciones internas
    Está al nivel de algo que habría que dividir en al menos 8 a 10 módulos

    • El manejo asíncrono en src/ink/termio/osc.ts también es confuso
      Ejecuta wl-copy, xclip y xsel de forma secuencial, pero no queda claro si realmente es async o no
    • Pero la complejidad de la estructura no necesariamente es algo malo
      Los code smells desde una perspectiva humana podrían funcionar distinto en código hecho por LLM
      Los LLM escriben código de manera diferente a los humanos, y hace falta un nuevo paradigma de análisis
      Si se les imponen reglas de programación humanas, hasta podrían terminar repitiendo los mismos bugs
      Hace falta un nuevo enfoque evolutivo llamado vibe coding
    • Quienes llevan tiempo usando CC ya saben que esta parte es la fuente de bugs
      Encima, Anthropic cierra automáticamente los bugs que no tienen actividad durante 60 días
    • Puede que la lentitud incluso esté funcionando como una especie de limitador de velocidad
    • El código es tan complejo que hasta salen bromas como “ese es trabajo de Larry”
  • Hay una regex para detectar emociones negativas en los prompts de usuario
    Código relacionado
    Ciertas palabras quedan marcadas para logging

    • Que una empresa de LLM haga análisis emocional con regex se siente como ver a una empresa de camiones usando caballos
    • En mi startup de 2011 también vendíamos análisis de sentimiento en Twitter de una forma parecida
      Incluso teníamos clientes como Apple y Bentley
    • En realidad esto es más bien una métrica de “WTF por minuto”
      Ojalá que si Claude responde algo raro, un ingeniero lo vea y lo mejore
    • No parece una optimización, sino simplemente el resultado de que un LLM implementó tal cual la instrucción de “registrar las quejas del usuario”
    • Si miras el código real, fuera del logger no hay ningún sitio que lo invoque
  • A mí el código JS/TS ofuscado no me parece gran cosa, porque al final no es código máquina
    Preferiría que liberaran el CLI como open source

    • Probablemente no lo hacen porque la calidad interna del código es baja
      Hace poco incluso hubo un bug en el flujo de login con OAuth que generaba una URL incorrecta
    • Dicen que “el CLI no tiene nada especial”, pero en realidad la parte de generación de contexto y la estructura de subagentes sí se ve bastante interesante
      Lo estoy revisando ahora mismo
    • Solo con las convenciones de nombres ya se puede ver cómo piensa el equipo y hacia dónde va el roadmap
      La ofuscación no puede ocultar eso
  • Algunos bromean con correr esto por Malus o por Claude Code para hacer una versión open source
    Claro, no lo dicen en serio

    • Malus no es un proyecto real, sino una sátira
      Enlace a la charla de FOSDEM
      La idea es traducir código a texto y luego de vuelta a código para que parezca una implementación clean room
      Irónicamente, las respuestas de los LLM ya derivan de código open source
    • También hay quien dice que, como Claude Code fue escrito por Claude, entonces no tendría copyright
    • El problema es que no se puede eludir la autenticación OAuth
      Anthropic podría detectarlo y banear la cuenta
    • También está la ironía de que las contribuciones open source sean cero
    • Tal vez claw-code sea un proyecto relacionado
  • ANTI_DISTILLATION_CC es una función integrada contra el robo de modelos dentro de Claude Code
    En cada request a la API inserta anti_distillation: ['fake_tools'], para que el servidor agregue definiciones de herramientas falsas al system prompt
    Está diseñado para contaminar los datos si un modelo competidor scrapea ese tráfico para entrenarse

    • Al parecer sí tuvo efecto
      El modelo Qwen 27B fue destilado a partir de Opus 4.6 y presentó errores en el uso de herramientas
      Tweet relacionado
    • Cuesta creer que Anthropic haya hecho esta investigación con intenciones puramente nobles
    • Pero últimamente el rate limiting está tan fuerte que el servicio pierde utilidad
    • Si el servidor le inyecta definiciones de herramientas falsas al cliente, me pregunto si el modelo fue entrenado para ignorarlas
      ¿Será que Sonnet u Opus también llevan este tipo de veneno de datos?
    • Igual queda la duda de por qué una función así está en el código del cliente
  • Se descubrió que Claude Code usa Axios
    Tweet relacionado / Hilo en HN

    • La versión actual usa Axios 1.14.0, o sea, la versión inmediatamente anterior a la 1.14.1 que incluía código malicioso
      Para bloquear las actualizaciones automáticas, hay que agregar export DISABLE_AUTOUPDATER=1 en la variable de entorno
      Luego se puede confirmar con claude doctor que aparezca Auto-updates: disabled