Anthropic retira de Claude Code un marcador oculto que señalaba a usuarios ligados a China
Claude Code marcaba en secreto rutas ligadas a China dentro del prompt. Anthropic retira el mecanismo.
TL;DR:
- Anthropic confirmó que elimina de Claude Code un mecanismo que, desde abril de 2026, marcaba de forma encubierta las peticiones enviadas a través de proxies o gateways ligados a China.
- El marcador solo se activaba con un endpoint personalizado (ANTHROPIC_BASE_URL); quien usa el endpoint oficial nunca estuvo afectado. Escondía la señal en caracteres Unicode invisibles y listas ofuscadas con XOR.
- La empresa lo llamó un experimento contra la reventa no autorizada y la destilación de modelos; el reclamo de fondo no es el objetivo, sino que estuviera oculto y sin aviso.
Anthropic empezó a retirar de Claude Code, su agente de programación por línea de comandos, un mecanismo oculto que durante casi tres meses marcó en silencio las peticiones de quienes enrutaban su tráfico a través de proxies o servidores ligados a China. Un desarrollador lo destapó el 30 de junio de 2026 revisando el binario de la herramienta. El hallazgo escaló a lo más alto de Hacker News y encendió una discusión incómoda: cuánta confianza merece un cliente que puede leer tus archivos y correr comandos en tu máquina. El código no enviaba un campo visible; escondía la señal dentro del propio system prompt. Un ingeniero de Anthropic reconoció que existía y prometió quitarla en la siguiente versión, aunque la compañía no publicó un comunicado formal.
Claude Code es el agente de programación por línea de comandos de Anthropic: lee archivos, ejecuta comandos en la terminal e incluso edita código directamente en la máquina del desarrollador. Ese nivel de acceso es justo lo que vuelve tan delicado el hallazgo.
Un marcador escondido en la fecha del sistema
El reporte técnico publicado en el blog thereallo.dev, que reconstruyó el código a partir del binario, mostró que Claude Code alteraba una línea aparentemente inocente del prompt: la que indica la fecha del día. En condiciones normales dice algo como "Today's date is 2026-06-30". El cliente podía cambiar dos cosas casi imperceptibles: el guion de la fecha por una diagonal (2026/06/30) y el apóstrofo de esa frase por otro carácter Unicode visualmente idéntico.
Ahí está el truco. Eso es esteganografía: ocultar información dentro de algo que a simple vista parece normal. La fecha se leía como una fecha; los bytes decían otra cosa.
¿Qué codificaba? Tres señales. Si la zona horaria del sistema era Asia/Shanghai o Asia/Urumqi, cambiaba el separador de la fecha. Además, comparaba el dominio del proxy contra dos listas guardadas en base64 y descifradas al vuelo con una operación XOR de clave 91 —el tipo de ofuscación que se usa para que una cadena no aparezca en una búsqueda de texto plano—. Una lista reunía unos 147 dominios: corporativos y de laboratorios chinos como Baidu, Alibaba o ByteDance, junto a un buen catálogo de servicios de reventa y gateways no autorizados de Claude. La otra, once palabras clave de laboratorios de IA: deepseek, moonshot, minimax, zhipu, stepfun, 01ai y varias más.
Un reporte de verificación independiente publicado en GitHub replicó el mecanismo en tres versiones distintas —2.1.193, 2.1.195 y 2.1.196— y lo describió como un canal de comunicación encubierto dentro del system prompt. El desarrollador que lo destapó primero, en el foro r/ClaudeAI, dijo haber topado con el código mientras intentaba restaurar una función desactivada en la versión 2.1.196. La lógica llevaba ahí desde la versión 2.1.91, publicada el 2 de abril de 2026, sin una sola mención en las notas de lanzamiento.
Solo se disparaba con un endpoint personalizado
Aquí conviene bajar el tono alarmista con un dato concreto: si usas Claude Code contra el endpoint oficial de Anthropic, o si no defines la variable ANTHROPIC_BASE_URL, el código no se ejecuta. Punto. El prompt sale "aburrido", como debe ser.
El caso que interesa es el de quien enruta la herramienta por una dirección propia: un gateway corporativo, un proxy local, un router de modelos, una API de reventa. Ahí —y solo ahí— Claude Code clasificaba el dominio y metía el resultado en el prompt.
Ese marcador viaja dentro del contexto que el cliente manda al modelo. El propio investigador cree que Anthropic lo interpreta en su backend, y la señal está pensada para llegarle cuando el proxy reenvía el tráfico a la API oficial, como hacen los revendedores. Pero qué hace exactamente la empresa con ese dato del lado del servidor no está confirmado de forma independiente: nadie capturó el tráfico de punta a punta en este análisis. La distinción importa, porque separa lo demostrado —la modificación local del prompt— de la etiqueta de "spyware" que muchos le colgaron.
Anthropic lo llama un experimento contra la reventa y la destilación
La respuesta no llegó por un comunicado oficial, sino por X. Thariq Shihipar, del equipo de Claude Code, reconoció el mecanismo sin rodeos:
"Un experimento que lanzamos en marzo, pensado para prevenir el abuso de cuentas por parte de revendedores no autorizados y proteger contra la destilación."
Shihipar agregó que desde entonces el equipo había desplegado mitigaciones más fuertes, que llevaban tiempo con la intención de quitarlo y que ya habían integrado el cambio para retirarlo por completo en la siguiente entrega. Esa versión, la 2.1.197, llegó al registro de npm en la madrugada del 1 de julio de 2026, aunque su changelog oficial no mencionó de manera explícita la eliminación del código.
La destilación de modelos consiste en usar las respuestas de un modelo para entrenar a otro que lo imite. Es la práctica que Anthropic dice querer frenar, y la lista de palabras clave del marcador apunta directo a ella.
El problema no es el objetivo, es que estaba oculto
Casi nadie discute que Anthropic tenga motivos para detectar reventa no autorizada o intentos de destilación. La molestia es otra: por qué esconderlo. En un hilo abierto contra el repositorio del proyecto en GitHub, un usuario lo resumió en preguntas directas —por qué se ocultó, qué se está infiriendo, qué versiones están afectadas y si un desarrollador puede auditarlo o desactivarlo— y remató: "Proteger la propiedad intelectual de un modelo no justifica marcar en secreto las máquinas de los desarrolladores".
El propio autor del análisis técnico fue medido en su conclusión:
"No es una función maliciosa, pero es una elección extraña para una herramienta de desarrollo que pide confianza."
Hay un segundo golpe, más técnico: el mecanismo se esquiva con facilidad. Cambiar el nombre del dominio, ajustar la zona horaria o parchar el binario bastan para volverlo inútil. Un laboratorio con intenciones serias lo evade en minutos; el que sí quedaba marcado era el desarrollador común que usa un gateway corporativo por razones perfectamente legítimas —gestión de credenciales, filtrado de datos, enrutamiento entre proveedores—. Un control que castiga sobre todo a quien no debía castigar.
El telón de fondo: la guerra por la destilación
Nada de esto ocurre en el vacío. Anthropic no ofrece sus modelos en China por razones de seguridad nacional, aunque muchos desarrolladores del país acceden a Claude con números de teléfono y tarjetas del extranjero. Y la empresa lleva meses denunciando el uso no autorizado de su tecnología.
En febrero de 2026, Anthropic acusó a tres laboratorios chinos —DeepSeek, Moonshot AI y MiniMax— de haber corrido más de 16 millones de intercambios con Claude a través de unas 24,000 cuentas fraudulentas para entrenar modelos rivales. Meses después fue más lejos: en junio dijo a legisladores estadounidenses que el laboratorio Qwen, de Alibaba, había ejecutado el mayor ataque de destilación conocido contra sus modelos, y lo planteó como un asunto de seguridad nacional, no de simple incumplimiento de términos de servicio. Aquella lista de palabras clave del marcador —ese "deepseek, moonshot, minimax…"— se lee, básicamente, como el mapa de las empresas que Anthropic más vigila.
Para la mayoría de quienes usan Claude Code de forma directa, el cambio no altera nada: nunca estuvieron en la mira. El costo es de otro tipo. Una compañía que se presenta como la apuesta "segura" y transparente de la IA terminó marcando a sus propios usuarios sin decírselo, y esa clase de deuda de confianza no se salda con un parche silencioso en npm. Para el desarrollador que enruta su tráfico por un proxy —algo común también en América Latina—, la lección práctica es simple: el binario que corre en tu máquina también merece que lo audites.