⚠️ Claude Code puede dejar contraseñas y claves API expuestas en GitHub al pulsar «No volver a preguntar»

Tronlar

Tronlar

Gamma
Verificación en dos pasos activada
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Una investigación publicada el 5 de noviembre por la empresa de seguridad Apiiro ha destapado un problema bastante preocupante en Claude Code, la herramienta de programación con inteligencia artificial de Anthropic.

Resulta que una opción tan habitual como «Sí, y no vuelvas a preguntar» puede terminar guardando contraseñas, tokens y claves API en un archivo de configuración del proyecto. Y si ese archivo acaba en un repositorio público de GitHub, cualquiera podría consultar su contenido.

Lo más llamativo es que los investigadores han encontrado 2.539 secretos en 1.994 repositorios públicos.

No hablamos únicamente de claves para probar aplicaciones. Entre los casos detectados hay credenciales de bases de datos, accesos SSH, tokens de servicios y claves de infraestructuras en la nube.



🔴 ¿Cómo ocurre exactamente?

Cuando trabajamos con Claude Code, la herramienta suele pedir permiso antes de ejecutar determinados comandos en la terminal.

Por ejemplo, podemos pedirle que compruebe una conexión a una base de datos o que haga una petición a una API.

Si el comando incluye una contraseña o un token y seleccionamos «Sí, y no vuelvas a preguntar», Claude Code puede guardar una regla para recordar esa autorización en futuras sesiones.

El problema aparece cuando esa regla contiene el comando completo, incluyendo la contraseña o clave que se haya utilizado.

La información puede terminar almacenada en este archivo:

Insertar CODE, HTML o PHP:
.claude/settings.local.json

Es decir, algo que debería servir para recordar permisos puede acabar funcionando como un pequeño almacén de credenciales en texto plano.

Importante: esto no significa que Claude Code publique automáticamente las contraseñas en GitHub.
La exposición se produce cuando esos archivos terminan subidos a repositorios públicos, por ejemplo, al incluirlos accidentalmente en un commit.



📊 ¿Qué encontraron los investigadores?

Apiiro analizó archivos públicos de configuración de Claude Code alojados en GitHub y encontró los siguientes resultados:
  • 104.185 copias del archivo settings.local.json en repositorios públicos.
  • 1.122 archivos contenían al menos un secreto.
  • 1.379 credenciales diferentes aparecían en esos archivos.
  • 63 organizaciones tenían información sensible expuesta.
  • Al ampliar la búsqueda a historiales de Git, otros archivos de configuración y registros de agentes, el total ascendió a 2.539 secretos en 1.994 repositorios.

Entre las credenciales encontradas había 379 contraseñas de bases de datos, 43 accesos SSH, 42 tokens relacionados con GitHub, GitLab o npm y 23 claves de AWS.

Los investigadores también identificaron casos especialmente delicados, como credenciales con privilegios elevados sobre servicios en la nube y contraseñas relacionadas con una base de datos de historiales médicos.

Eso sí: encontrar una clave publicada no demuestra que siga funcionando ni que alguien la haya utilizado. Apiiro indica que no comprobó la validez de todas las credenciales, aunque una de las organizaciones notificadas confirmó que su clave había estado activa.



🧐 ¿Pero Claude Code no debería evitar que ese archivo se suba a GitHub?

Aquí está uno de los detalles más interesantes.

Según la documentación de Anthropic, Claude Code intenta mantener el archivo local fuera de Git mediante una configuración de exclusiones del usuario.

El inconveniente es que esa protección depende del entorno local y no equivale a incluir el archivo en el .gitignore del propio proyecto.

Por tanto, pueden producirse situaciones en las que el archivo termine versionado, especialmente si ya estaba incluido anteriormente o se trabaja desde otro entorno.

Y hay otro problema: borrar el archivo del repositorio no elimina necesariamente las contraseñas filtradas.

Si estuvo publicado, sus versiones anteriores pueden continuar en el historial de Git, en clones o en bifurcaciones del proyecto.

Por eso los investigadores recomiendan cambiar primero las credenciales comprometidas y después limpiar el repositorio.



🕒 Lo curioso es que el problema ya se había comunicado en 2025

La investigación también señala que este comportamiento no es completamente nuevo.

El 11 de agosto de 2025, un usuario abrió una incidencia en el repositorio oficial de Claude Code explicando que los comandos autorizados podían almacenarse con contraseñas y tokens sin ocultar.

El informe describía precisamente el archivo settings.local.json y el riesgo de que las credenciales acabaran compartidas accidentalmente.

La incidencia terminó cerrada como «not planned» mediante un proceso automatizado.

Esto no demuestra que Anthropic ignorase deliberadamente el problema, pero sí que existía un aviso público mucho antes de que se publicara esta investigación.



🛠️ ¿Qué deberían revisar quienes utilizan Claude Code?

Si utilizáis Claude Code para desarrollar aplicaciones, administrar servidores o trabajar con APIs, merece la pena comprobar algunas cosas:
  • Revisar el archivo .claude/settings.local.json de vuestros proyectos y comprobar si alguna regla de permisos contiene contraseñas, tokens o claves API.
  • Comprobar también .claude/settings.json, especialmente si se comparte con otros desarrolladores.
  • Buscar esos archivos en vuestros repositorios de GitHub y revisar el historial de Git, aunque ya los hayáis eliminado.
  • Si encontráis una credencial que haya sido publicada, revocarla o cambiarla inmediatamente. Borrar el archivo no es suficiente.
  • Añadir .claude/settings.local.json al archivo .gitignore del proyecto.
  • Evitar introducir contraseñas directamente en los comandos. Es preferible utilizar variables de entorno o gestores de secretos, teniendo cuidado también con dónde se almacenan esas variables.

Si el archivo ya está siendo seguido por Git, se puede dejar de versionar sin borrarlo del equipo mediante:

Bash:
git rm --cached .claude/settings.local.json

Después habría que añadirlo al .gitignore y confirmar el cambio.

Ojo: este comando no borra las versiones antiguas del historial ni revoca las credenciales que hayan podido quedar expuestas.



🔎 ¿Los escáneres de seguridad detectan estas contraseñas?

No siempre.

Los investigadores también comprobaron cómo respondían dos herramientas conocidas para buscar secretos en repositorios: Gitleaks y TruffleHog.

De los 1.122 archivos con información sensible, 215 no fueron identificados por ninguna de las dos herramientas en las pruebas realizadas.

El motivo es bastante sencillo: muchos escáneres reconocen formatos habituales de claves API, pero una contraseña escrita dentro de un comando de terminal puede parecer una cadena de texto cualquiera.

Por eso, tener un escáner de secretos configurado no garantiza que este tipo de filtraciones vaya a detectarse.



📌 En resumen

El problema no está en que Claude Code envíe automáticamente nuestras contraseñas a GitHub, sino en que puede conservar comandos completos con información sensible dentro de archivos que después terminan publicados por accidente.

Es una de esas situaciones en las que una función pensada para ahorrar tiempo puede convertirse en un riesgo de seguridad si no se conoce cómo funciona.

Y viendo que muchos desarrolladores utilizamos asistentes de IA para conectarnos a bases de datos, configurar servidores o probar APIs, no parece mala idea dedicar un par de minutos a revisar esos archivos.



🔗 Fuentes originales:



💬 ¿Utilizáis Claude Code habitualmente?

¿Habéis revisado alguna vez vuestro archivo .claude/settings.local.json para comprobar qué comandos ha guardado?
 
¿Te sirvió? Únete a la conversación

Con tu cuenta gratis puedes responder, escribirle al autor por mensaje privado y comprar con Saldo retenido: el pago se libera cuando recibes lo acordado.

Toma 30 segundos · vuelves a este tema al terminar
Por este tipo de cosas la gente no debería ser una comodona y no permitir que un modelo de inteligencia artificial te haga las compras, ni tareas demasiado críticas.
 
Por este tipo de cosas la gente no debería ser una comodona y no permitir que un modelo de inteligencia artificial te haga las compras, ni tareas demasiado críticas.
Sí, en tareas críticas hay que tener bastante cuidado.
Lo curioso es que el usuario sí estaba dando permiso para ejecutar el comando.
El problema viene después, cuando Claude Code puede guardar ese comando completo, incluida una contraseña o clave API, en un archivo de configuración.
No es solo cuestión de confiar demasiado en la IA, sino también de cómo está diseñada la herramienta para manejar información sensible.
Y lo peor es que puedes estar revisando lo que ejecuta Claude y ni enterarte de que ha dejado una contraseña guardada por ahí.
 
Atrás
Arriba