Un User-Agent como mi-sesion/1 <[email protected]> ha bastado para que la dirección de correo de la cuenta de Claude Code acabe en los registros de servidores ajenos. El 5 de noviembre de 2026 el hilo "Claude Code sends your email address to websites" superó los 600 puntos en Hacker News, y la versión 2.1.317, publicada en npm el 2 de noviembre, ya incluye una comprobación que pide permiso antes de que una herramienta web o de shell envíe ese correo a la red.
Por qué el agente mandaba tu correo
No es un valor fijo en el código del cliente. Desde la versión 2.1.234 (17 de agosto de 2026), el changelog de Claude Code indica que al modelo "se le dice" que use el correo de tu cuenta solo para identificarte y que no lo envíe a servicios ajenos salvo que se lo pidas. Es decir: el correo está en el contexto del modelo y la única barrera era una instrucción en lenguaje natural.
El fallo aparece cuando el agente escribe sus propias peticiones HTTP con curl o con un script. Hay sitios que piden a los clientes automáticos que se identifiquen: la política de User-Agent de Wikimedia, por ejemplo, avisa de que los scripts deben usar un User-Agent informativo "con información de contacto" o pueden ser bloqueados sin aviso. Un modelo que conoce esa convención y tiene tu correo a mano puede decidir que lo correcto es ponerlo en la cabecera. En el hilo, un usuario cuenta que desde entonces recibe correos de phishing de sitios que nunca había visitado; otros usuarios no ven nada raro en sus cabeceras. La correlación con el spam no está demostrada, pero la fuga sí: cualquier servidor que registre cabeceras se queda con la dirección.
La lección va más allá de Anthropic: una instrucción en el prompt no es un control de seguridad. Si un dato está en el contexto de un agente con acceso a red, hay que suponer que puede salir.
Qué cambia en la 2.1.317
La entrada del changelog es una línea: "Added a check that asks before a web or shell tool call sends your account email address to the network". La diferencia es que ahora hay código determinista que mira la llamada antes de ejecutarla, en lugar de confiar en que el modelo respete la instrucción. La versión vigente es la 2.1.318, del 3 de noviembre.
Cómo actualizar y comprobar tu versión
Si lo instalaste con el instalador nativo, Claude Code se actualiza solo; para forzarlo o si usas npm:
claude update
# o, con la instalación de npm
npm install -g @anthropic-ai/claude-code@latest
claude --version # 2.1.317 o posteriorEn equipos con versiones fijadas (imágenes de CI, contenedores de desarrollo, runners autoalojados) revisa el número de versión de la imagen: es ahí donde suelen quedarse clientes antiguos durante semanas.
Lo que la comprobación no cubre
El texto del changelog habla del correo de tu cuenta. El agente ve más direcciones: la de git config user.email, la de los commits que lee con git log o la de cualquier fichero del repositorio. Si la que usas en Claude es distinta de la de tus commits, la nueva comprobación no protege la segunda.
Para cerrar ese hueco con la misma lógica determinista, un hook PreToolUse puede denegar cualquier comando de Bash que contenga tu correo de git. La estructura sigue el ejemplo de la documentación de hooks (necesita jq):
{
"hooks": {
"PreToolUse": [
{
"matcher": "Bash",
"hooks": [
{
"type": "command",
"command": "${CLAUDE_PROJECT_DIR}/.claude/hooks/block-email.sh"
}
]
}
]
}
}#!/bin/bash
# .claude/hooks/block-email.sh
# Deny Bash commands that include the git author email
COMMAND=$(jq -r '.tool_input.command')
EMAIL=$(git config user.email)
if [ -n "$EMAIL" ] && printf '%s' "$COMMAND" | grep -qiF "$EMAIL"; then
jq -n '{
hookSpecificOutput: {
hookEventName: "PreToolUse",
permissionDecision: "deny",
permissionDecisionReason: "Command contains the git author email"
}
}'
else
exit 0
fiGuárdalo en .claude/hooks/, dale permisos con chmod +x y amplía la búsqueda a otras cadenas que no quieras ver salir, como el dominio de la empresa. No es infalible: un correo codificado en base64 o escrito en un fichero antes de enviarlo lo esquiva. Para datos de verdad sensibles, la regla sigue siendo no ponerlos al alcance de un agente con red.
Fuentes
- Claude Code sends your email address to websites — Hacker News
- Claude Code changelog (2.1.234, 2.1.317, 2.1.318) — Anthropic
- @anthropic-ai/claude-code on npm — npm
- Wikimedia Foundation User-Agent Policy — Wikimedia Foundation
- Hooks reference — Claude Code Docs