Claude Code, el asistente de programación de Anthropic que trabaja desde la terminal, ha enviado en varios casos documentados el correo de la cuenta del usuario a webs de terceros sin pedirle permiso. El dato viajaba dentro de la cabecera User-Agent de las peticiones web, la parte que identifica al programa que visita una página. El caso se denunció el 5 de noviembre de 2026 en el repositorio oficial del proyecto en GitHub y llegó en pocos días a Hacker News y Reddit.
Anthropic ha respondido con un módulo integrado, llamado cc-plugin-privacy, que viene activado por defecto desde la versión 2.1.317. Sin embargo, la propia documentación del módulo reconoce que no cubre todas las vías por las que el correo puede salir, y varios usuarios aseguran que en sus equipos no funciona. El episodio interesa también fuera del mundo de la programación, porque muestra cómo un agente de inteligencia artificial con acceso a internet puede revelar datos personales sin que intervenga ningún atacante.
Qué es la cabecera User-Agent y por qué acabó ahí el correo
Cada vez que un programa pide una página web, envía junto a la petición unas líneas de información llamadas cabeceras HTTP, algo parecido al remite y las indicaciones escritas en un sobre. Una de ellas, la User-Agent, funciona como una tarjeta de visita: indica, por ejemplo, «soy Chrome en Windows». Los servidores guardan esa información en sus registros casi siempre, de modo que escribir un correo ahí equivale a dejarlo anotado en el libro de visitas de cada sitio.
Algunos sitios piden a los programas automáticos que se identifiquen con un contacto. Según los medios que han cubierto el caso, es lo que hacen la SEC, el regulador bursátil de Estados Unidos, y Wikimedia, aunque no hemos podido consultar sus normas originales. Claude Code es un agente, es decir, no se limita a responder: ejecuta comandos, descarga páginas y escribe archivos en el ordenador del usuario. Cuando el modelo redactaba por su cuenta una petición web, con la herramienta de terminal curl o con un script de Python, a veces decidía añadir un contacto para cumplir esas normas y utilizaba el correo de la cuenta.
El informe abierto en GitHub (issue #107757) muestra un script con una cabecera del tipo «herramienta/0.1 (mailto: correo de la cuenta)». Los casos documentados incluyen peticiones a crates.io, el registro de paquetes del lenguaje Rust; a Liquipedia, donde lo hizo un subagente (una IA ayudante que el agente principal lanza para una subtarea), y a la web de la SEC. Según daily.dev, el modelo también lo hacía tras recibir un error 401 o 403, las respuestas de «no autorizado» o «prohibido» de un servidor, o cuando el archivo robots.txt de un sitio, que contiene normas para los programas automáticos, pedía un contacto.
El origen: el correo estaba en las instrucciones del modelo
La causa de fondo es una decisión de diseño. Claude Code incluye el correo del usuario en las instrucciones de sistema, el texto que el modelo recibe al empezar cada sesión y que el usuario no ve. Si el dato está ahí, el modelo puede usarlo como cualquier otro. Según el análisis de Pasquale Pillitteri, el correo se lee del archivo de configuración ~/.claude.json y aparece en un bloque llamado «# userEmail».
El problema no era nuevo. El 25 de julio de 2026 se abrió en GitHub el issue #81138, que denuncia que el correo de la cuenta, un dato personal identificable, se inyecta en esas instrucciones sin consentimiento ni aviso, y antes ya había habido otros avisos parecidos. Por su parte, dev.ua recoge que una integrante del equipo explicó en Hacker News que el correo se añadió porque el modelo a veces se inventaba el nombre del usuario, y que planean retirarlo. No hemos podido leer ese comentario directamente ni confirmar si el correo ya se ha eliminado de las instrucciones.
La respuesta de Anthropic: el módulo cc-plugin-privacy
El mismo 5 de noviembre, un colaborador del repositorio respondió en el informe que desde la versión 2.1.317 existe el módulo cc-plugin-privacy, que bloquea este comportamiento «de forma determinista». En Hacker News, un usuario al que el moderador del sitio identifica como probable desarrollador de Claude Code escribió que el equipo había conocido el problema pocos días antes, cuando empezó a circular en Reddit.
Que el filtro sea determinista significa que está en el código y actúa siempre igual, como el torno del metro, mientras que el modelo obedece las instrucciones casi siempre, como un empleado que a veces olvida una norma. Según el README oficial, el módulo vigila los comandos de terminal (Bash, PowerShell y Monitor) y rechaza cualquiera que contenga a la vez el correo de la cuenta y la palabra User-Agent, aunque cambien las mayúsculas o el correo esté codificado para URL. Ese rechazo no se puede saltar con una regla de permiso guardada ni con el modo automático.
La misma documentación detalla lo que queda fuera: el correo dentro de una URL o del cuerpo de la petición, el uso de curl -u y de la cabecera From:, las herramientas propias de lectura y búsqueda web (WebFetch y WebSearch) y las conexiones con servicios externos mediante MCP, un estándar para enlazar la IA con otras aplicaciones. Además, solo reconoce el correo de la cuenta, de modo que si el modelo usa otro, como el de la configuración de git, no lo detecta. A esto se suma una discrepancia sin resolver: según clauding.de y un artículo publicado en DEV Community, el registro de cambios de la versión describe una comprobación que pregunta al usuario, mientras que el README indica que el rechazo no muestra ningún aviso.
Lo que se dice sobre Claude Code y el correo, y lo que dicen los datos
| Afirmación que circula | Veredicto | Explicación |
|---|---|---|
| Claude Code ha estado filtrando el correo de sus usuarios | Cierto, con matices | Hay varios casos documentados en GitHub y Hacker News. Sin embargo, según Cybersecurity News, las pruebas públicas no demuestran que afectara a todos los usuarios, y no se trata de un robo de la base de datos de cuentas de Anthropic. |
| Lo envía en la cabecera User-Agent al visitar ciertas webs | Cierto | El issue #107757 muestra el ejemplo, y los casos documentados afectan a sitios que piden un contacto, como crates.io, Liquipedia o la SEC. |
| Lo hace sin permiso del usuario | Cierto | Es lo que denuncia el issue #107757, y el #81138 ya señalaba en julio que el correo se incluye en las instrucciones del modelo sin consentimiento ni aviso. |
| Anthropic lo ha reconocido | Cierto | Un colaborador del repositorio respondió con la existencia del módulo de protección. El aviso sobre el correo en las instrucciones, en cambio, estaba abierto desde julio. |
| La versión 2.1.317 incluye una solución | Cierto, pero parcial | El módulo viene activado por defecto desde esa versión, pero según su README solo cubre los comandos de terminal que combinan el correo y la palabra User-Agent. |
| El arreglo no siempre funciona | Cierto según pruebas de usuarios; sin confirmación oficial | Según clauding.de y StartupHub, dos usuarios con la versión 2.1.318 no veían el módulo. Un comentario en el issue describe una prueba en la 2.1.319 para macOS que no se bloqueó, e iMasters afirma que falló en Windows. Mallory.ai recoge que un desarrollador probó 23 comandos: el módulo frenó la vía del User-Agent, pero dejó pasar otras ocho. |
| Basta con actualizar a la última versión | Incompleto | Actualizar es necesario, pero hay usuarios con versiones posteriores a la 2.1.317 que no ven el módulo instalado. |
| Una instrucción en el archivo CLAUDE.md lo evita | Exagerado | Según DEV Community, las instrucciones de sistema ya pedían no enviar el correo y el modelo lo hizo igualmente; en el caso de crates.io, el propio Claude reconoció haber incumplido esa norma. Pillitteri recoge una prueba en la que el correo se filtró en 8 de 60 sesiones sin control automático y en ninguna con él. |
| La filtración explica los correos fraudulentos que recibe el usuario afectado | Sin confirmar | Quien abrió el informe dice recibir docenas de mensajes de estafa al día, pero GIGAZINE y Cybersecurity News señalan que no está demostrado que se deban a Claude Code. |
Qué significa para ti
Si usas Claude Code, tu correo puede haber quedado registrado en servidores de terceros, aunque no hay forma general de saberlo sin revisar tus propias sesiones. El archivo CLAUDE.md, donde se escriben notas e instrucciones para el agente, funciona como un consejo y no como un candado, así que la protección real depende de controles en el código. Estas son las medidas más razonables según la documentación oficial y los análisis publicados:
- Comprueba la versión: necesitas la 2.1.317 o una posterior.
- Verifica el módulo: escribe /plugin y confirma que cc-plugin-privacy aparece activado. Según el README, se desactiva con /plugin disable o con el ajuste «cc-plugin-privacy@builtin»: false en la configuración de usuario. La configuración de un repositorio no puede desactivarlo, pero un hook (el punto en el que una extensión revisa cada acción) de otro plugin sí puede anular el bloqueo, así que revisa qué extensiones tienes instaladas.
- No dependas solo de CLAUDE.md: una instrucción puede ayudar como complemento; StartupHub cita a un usuario que limita en ese archivo a qué dominios se puede enviar el correo.
- Usa un alias de correo desechable para la cuenta, como recomiendan Pillitteri y StartupHub.
- Busca tu correo en los registros de sesión para saber si ha salido en alguna petición.
- En entornos de empresa, filtra el tráfico del agente con un cortafuegos, ya que el módulo no cubre las herramientas web ni las conexiones MCP.
Para las empresas que usan estos agentes a diario, el caso tiene además una lectura de cumplimiento normativo: un dato personal salió hacia terceros sin consentimiento. Por eso conviene tratar a cualquier agente con acceso a internet como un sistema que puede enviar información fuera, y aplicar sobre él los mismos controles que sobre cualquier otro software.
En resumen
Claude Code ha incluido en varios casos documentados el correo de la cuenta en la cabecera User-Agent de peticiones a webs de terceros, porque ese dato forma parte de las instrucciones que recibe el modelo desde antes de julio de 2026. Anthropic ha publicado en la versión 2.1.317 un módulo activado por defecto que bloquea esa vía concreta, pero su documentación reconoce que no cubre otras, y varios usuarios afirman que no funciona en sus equipos. No está demostrado que la filtración haya provocado correos fraudulentos. La protección más fiable combina tener el módulo activo, usar un correo alternativo y vigilar el tráfico del agente, más que confiar en instrucciones escritas para el modelo.
Fuentes
- GitHub: Bug Report: Privacy violation in User-Agent header (issue #107757)
- GitHub: Account email (PII) is injected into the model's system prompt (issue #81138)
- GitHub: README del módulo privacy de Claude Code
- Hacker News: respuesta sobre el conocimiento del problema
- Hacker News: Tell HN: Claude Code adds your email to the prompt
- Cybersecurity News
- GIGAZINE
- iMasters
- PrivacySavvy
- dev.ua
- clauding.de
- daily.dev
- StartupHub.ai
- AI Weekly
- Mallory.ai
- Pasquale Pillitteri
- DEV Community (fathomnews)
- DEV Community (karmabox)
- DEV Community (luisalima)
- DEV Community (slabb)