Claude Code puede dejar tus contraseñas a la vista en GitHub
La empresa de seguridad Apiiro ha encontrado 2.539 contraseñas y claves en 1.994 proyectos públicos de GitHub, muchas guardadas al pulsar «no volver a preguntar» en Claude Code. Si usas esta herramienta para tus scripts de SEO, conviene mirar qué ha guardado en tu ordenador.

Claude Code, el asistente de programación de Anthropic, pide permiso antes de ejecutar la mayoría de los comandos. Una de las respuestas posibles es «Yes, and don't ask again»: sí, y no vuelvas a preguntar. Para recordarlo, guarda una regla en un archivo del proyecto llamado .claude/settings.local.json. A veces la regla es un patrón general y otras es el comando exacto. En ese segundo caso, si el comando llevaba una contraseña o una clave, también queda guardada, en texto legible.
El problema llega cuando ese archivo se sube a GitHub con el resto del proyecto. Apiiro publicó el 5 de noviembre que hay 104.185 copias públicas de ese archivo y que 1.122 (el 1,1 %) contienen al menos una contraseña o clave. Más de un tercio de las que hay en ese archivo corresponden a credenciales de acceso directo a bases de datos. Si se suman sus versiones antiguas, otro archivo de ajustes de Claude Code y las conversaciones con agentes de programación que algunos proyectos guardan, salen las 2.539 de la entradilla.

Apiiro no ha probado si siguen funcionando: cuenta como secreto lo que tiene formato de clave conocida o una contraseña junto a la dirección de un servidor público, con una revisión automática posterior. Una de las empresas a las que avisó confirmó que su clave estaba activa. Apiiro vende seguridad para equipos de desarrollo, aunque publica su método.
El riesgo crece con el uso, porque cada «no volver a preguntar» alarga la lista: la proporción de archivos con una clave real pasa del 0,17 % en los de menos de 500 bytes al 9,9 % en los de más de 8 KB. Tampoco son descuidos recientes: en la mitad de los proyectos con una clave real, el archivo llevaba al menos 217 días subido el 2 de noviembre, y en 118 proyectos, más de un año. En 539 de los 1.105 proyectos que Apiiro rastreó, ese archivo cambió en un commit (una versión guardada del proyecto) con Claude como coautor. Esa marca indica participación del asistente, pero no demuestra quién decidió subir el archivo.

Claude Code intenta evitar la fuga. Según su documentación, la primera vez que escribe el archivo le indica a Git, el programa que controla las versiones del código, que lo ignore en ese ordenador. Apiiro señala que esa protección no viaja con el proyecto y no sirve si el archivo ya se había subido. De los 16 agentes de programación cuya documentación comparó, Claude Code es el único que confirma guardar por defecto el comando completo en un archivo del proyecto.
Los usuarios llevan avisando desde agosto de 2025. The Hacker News cuenta que un bot ha cerrado los cuatro avisos que cita Apiiro, que asegura que ninguno recibió respuesta de Anthropic. Ninguna de las dos fuentes recoge una respuesta de la empresa a este estudio.
Un script de SEO también puede llevar una clave
Nuestra lectura: para esto no hace falta ser desarrollador. Basta con pedirle a Claude Code un script que consulte una API de pago, entre en la base de datos de un WordPress o se conecte a un servidor, y aprobarlo con la clave escrita en el comando. Quien la encuentre tendría el mismo acceso, y a menudo será el de la web de un cliente. Apiiro no mide cuántos de estos casos son de SEO, así que no sabemos cuánto afecta al sector.
Aunque nunca subas nada a GitHub, el archivo sigue en tu ordenador sin cifrar. Apiiro recuerda que ya hay programas maliciosos que buscan contraseñas en los equipos de quienes programan.
Cómo comprobar si te afecta
- Abre el archivo. Busca
settings.local.jsondentro de las carpetas.claudede tus proyectos y ábrelo con cualquier editor de texto. Cada línea de la listaallowes algo que aprobaste: busca contraseñas, claves y direcciones de conexión. No te fíes solo de las herramientas automáticas: en 215 de los 1.122 archivos con una clave, ni gitleaks ni TruffleHog detectaron nada, normalmente porque era una contraseña escrita dentro de un comando. - Si encuentras una, cámbiala antes de nada. Después borra esa línea. Si el proyecto estuvo alguna vez en GitHub, borrar el archivo no basta, porque sigue en el historial y en las copias que otros hayan hecho del proyecto. Apiiro encontró 734 claves que solo siguen en versiones antiguas del archivo.
- Mira tu GitHub. Busca en tus proyectos
.claude/settings.local.jsony.claude/settings.json, y también en su historial. - Déjalo fuera de las subidas. Añade
.claude/settings.local.jsonal archivo.gitignorede cada proyecto. Si ya estaba subido, deja de seguirlo congit rm --cached .claude/settings.local.json. - No escribas claves en los comandos. Guárdalas en un gestor de secretos o en una variable, de modo que la regla diga
$DB_URLy no la contraseña. Y si un comando lleva una clave a la vista, no pulses «no volver a preguntar».

