Tecnología
Claude Code deja 2.539 credenciales en repositorios públicos de GitHub
Una investigación detecta miles de credenciales expuestas en GitHub por archivos de configuración de Claude Code y advierte de que borrarlos no basta.
Resumen
- Apiiro localizó 2.539 credenciales en 1.994 repositorios públicos
- Claude Code puede guardar contraseñas junto a comandos autorizados
- El historial de Git puede conservar claves incluso después de borrar el archivo
Miles de contraseñas, claves de acceso y credenciales empresariales han quedado expuestas en repositorios públicos de GitHub por un problema relacionado con Claude Code, el asistente de programación con inteligencia artificial desarrollado por Anthropic. Una investigación de la empresa de ciberseguridad Apiiro ha identificado 2.539 credenciales sensibles en 1.994 repositorios públicos, entre ellas contraseñas de bases de datos, claves de servicios en la nube y permisos de acceso a servidores.
El problema nace de una función aparentemente inofensiva: la posibilidad de autorizar una operación y evitar que Claude Code vuelva a solicitar permiso para ejecutarla. Cuando el comando contiene una contraseña o una clave privada, el programa puede guardar esa información en un archivo de configuración. Si posteriormente el documento se incorpora a un proyecto público de GitHub, los datos quedan al alcance de cualquiera.
La investigación, publicada el 5 de noviembre y actualizada el día 8, examinó 104.185 archivos de configuración de Claude Code disponibles públicamente. De ellos, 1.122 contenían al menos una credencial sensible, con un total de 1.379 claves y contraseñas diferentes. El número asciende a 2.539 al incorporar información localizada en versiones anteriores de los archivos y otros documentos utilizados por asistentes de programación.
No se trata de un ataque informático contra los servidores de Anthropic ni de una filtración generalizada de las contraseñas de los usuarios de Claude. El problema afecta principalmente a desarrolladores y empresas que utilizan Claude Code y publican sus proyectos sin advertir que determinados archivos contienen información confidencial. Tampoco se ha demostrado que las credenciales encontradas hayan sido utilizadas por terceros.
Cómo una función de Claude Code termina exponiendo contraseñas
Claude Code permite a los programadores ejecutar comandos, modificar archivos y realizar operaciones técnicas mediante instrucciones en lenguaje natural. Para determinadas acciones, especialmente las que afectan al sistema o requieren acceso a servicios externos, el asistente solicita autorización.
El usuario puede aceptar una operación concreta o seleccionar una opción equivalente a «Sí, y no volver a preguntar». La segunda alternativa resulta cómoda cuando se repiten determinadas tareas, pero introduce un riesgo que puede pasar inadvertido.
Al conceder ese permiso permanente, Claude Code guarda una regla en un archivo denominado .claude/settings.local.json. El documento registra los comandos autorizados para que el programa pueda volver a ejecutarlos sin solicitar una nueva confirmación.
El inconveniente aparece cuando esos comandos incluyen información sensible. Una instrucción para acceder a una base de datos, por ejemplo, puede incorporar directamente su contraseña. Si el sistema conserva el comando completo, también conserva la contraseña, en texto sin cifrar, dentro del archivo de configuración.
El riesgo no termina ahí. Aunque el documento está pensado para permanecer en el ordenador del desarrollador, puede acabar publicado accidentalmente junto con el código de un proyecto.
Por qué GitHub puede publicar archivos que deberían ser privados
Claude Code incorpora un mecanismo para evitar que su configuración local se incluya en los repositorios de Git. Cuando crea el archivo, normalmente añade una regla de exclusión a la configuración global del ordenador.
Sin embargo, esa protección presenta limitaciones. Las exclusiones globales no se trasladan automáticamente cuando un proyecto se copia a otro equipo. Tampoco protegen necesariamente los archivos que ya estaban incorporados al historial del repositorio o aquellos creados manualmente.
La consecuencia es sencilla: un desarrollador puede trabajar durante meses sin advertir ningún problema y, al compartir su proyecto, terminar publicando un documento que contiene claves API, contraseñas o tokens de autenticación.
GitHub no es el origen del fallo. La plataforma almacena y muestra los archivos que sus usuarios deciden incorporar a repositorios públicos. El problema surge de la combinación entre el almacenamiento de credenciales en comandos autorizados y una protección que no siempre acompaña al proyecto.
Más de 2.500 credenciales y 63 organizaciones afectadas
Los resultados de Apiiro permiten dimensionar el alcance de la exposición. Entre los 1.379 secretos encontrados en las versiones públicas actuales del archivo de configuración figuran 379 contraseñas de bases de datos, 122 claves privilegiadas de Supabase y 103 tokens de cuentas de ese mismo servicio.
Los investigadores localizaron también 43 credenciales de acceso SSH a servidores, 42 tokens relacionados con GitHub, GitLab y npm, 23 claves de Amazon Web Services (AWS) y seis claves privadas.
La investigación identificó credenciales pertenecientes a 63 organizaciones, aunque la mayor parte de los casos correspondía a proyectos de desarrolladores individuales.
Entre los ejemplos documentados aparecen una contraseña de una base de datos PostgreSQL utilizada en producción, una clave de administración de un proveedor tecnológico y credenciales vinculadas a una aplicación de historiales médicos.
La gravedad depende de los permisos asociados a cada clave. No supone el mismo riesgo una credencial limitada a un entorno de pruebas que otra capaz de administrar una base de datos empresarial o acceder a información confidencial.
Apiiro aclara que no utilizó las contraseñas encontradas ni intentó conectarse a los servicios afectados. Por tanto, la exposición está documentada, pero no demuestra por sí sola accesos fraudulentos.
Borrar las contraseñas de GitHub no siempre soluciona el problema
Uno de los aspectos más delicados de esta investigación es la persistencia de los archivos publicados.
Git conserva un historial de modificaciones que permite recuperar versiones anteriores de un proyecto. Esto significa que eliminar una contraseña del documento actual no garantiza su desaparición de internet.
Apiiro encontró 734 credenciales adicionales en versiones antiguas de archivos que ya no mostraban esos datos en su versión vigente. También identificó 211 bifurcaciones, conocidas como forks, de 74 repositorios que conservaban copias de credenciales expuestas.
Las copias descargadas por otros usuarios pueden permanecer fuera del control del propietario original. Incluso una limpieza del historial requiere precauciones, porque determinadas referencias y repositorios derivados pueden seguir conservando la información.
Por ese motivo, GitHub recomienda revocar o sustituir inmediatamente las credenciales comprometidas, antes de abordar la eliminación de los datos publicados.
La investigación también detectó limitaciones en las herramientas habituales de seguridad. De los 1.122 archivos que contenían credenciales, 215 no fueron señalados por ninguno de los dos analizadores utilizados en la comprobación, Gitleaks y TruffleHog.
El motivo es que muchas contraseñas aparecen integradas en comandos corrientes y no presentan los patrones que suelen utilizar estos programas para reconocer una clave secreta.
Anthropic estudia cambios para evitar nuevas filtraciones
Anthropic ha reconocido la necesidad de revisar este comportamiento de Claude Code.
Boris Cherny, responsable del producto, respondió públicamente a la investigación el 7 de noviembre y explicó que su equipo estaba examinando posibles soluciones para impedir que las credenciales acabasen almacenadas o publicadas accidentalmente.
Entre las medidas planteadas figuran mejoras en el sistema de autorizaciones automáticas y la incorporación de controles básicos para detectar información secreta antes de guardarla.
Cherny también recordó que Claude Code intenta excluir el archivo de configuración local del control de versiones cuando lo crea.
La respuesta apunta a un problema conocido en el desarrollo de herramientas de inteligencia artificial: automatizar tareas reduce el trabajo repetitivo, pero también puede facilitar que determinados errores pasen inadvertidos.
Por ahora, las medidas anunciadas se encuentran en fase de estudio y pruebas. No consta, a partir de esa respuesta, que Anthropic haya desplegado una solución definitiva capaz de impedir todos los escenarios descritos.
Cómo comprobar si las contraseñas de Claude Code están expuestas
Los desarrolladores que utilizan Claude Code deberían revisar si el archivo .claude/settings.local.json aparece en alguno de sus repositorios públicos de GitHub.
También conviene inspeccionar .claude/settings.json, utilizado para compartir determinadas configuraciones entre miembros de un equipo, y comprobar el historial de cambios. Que un archivo ya no aparezca en el proyecto actual no significa que nunca haya sido público.
Si se encuentran contraseñas, tokens o claves de acceso, la prioridad es revocarlos y generar otros nuevos. Después debe corregirse la configuración del repositorio para impedir nuevas publicaciones accidentales.
La inclusión del archivo local en .gitignore ayuda a evitar incorporaciones futuras, siempre que no estuviera ya bajo seguimiento de Git. Cuando el archivo ha sido publicado anteriormente, es necesario revisar también su historial y las posibles copias.
Otra precaución consiste en evitar las contraseñas escritas directamente dentro de los comandos. Las variables de entorno y los gestores de secretos permiten proporcionar credenciales a las aplicaciones sin dejarlas incorporadas permanentemente a las instrucciones.
Las organizaciones pueden complementar estas medidas con herramientas de detección de secretos antes de publicar cambios, aunque los resultados de Apiiro muestran que los análisis automáticos no son infalibles.
El riesgo de confiar demasiado en los permisos automáticos
El caso de Claude Code ilustra un problema que va más allá de un archivo mal protegido. Los asistentes de programación empiezan a intervenir en operaciones que antes realizaban directamente los desarrolladores: consultar bases de datos, modificar servicios, ejecutar instrucciones y preparar código para su publicación.
Esa capacidad implica trabajar, en ocasiones, con información especialmente delicada.
La comodidad de aceptar una operación una sola vez puede ocultar un detalle importante: una autorización aparentemente rutinaria puede conservar datos que nunca deberían salir del ordenador.
La investigación no demuestra que todos los asistentes de programación compartan este comportamiento. De hecho, Apiiro examinó la documentación de 16 herramientas y señaló a Claude Code como la única en la que pudo confirmar el almacenamiento predeterminado del comando completo dentro de un archivo del proyecto.
Lo que sí demuestra es que una contraseña puede quedar expuesta sin que nadie haya decidido compartirla expresamente. Basta con que una herramienta la guarde en un lugar inesperado y que ese archivo termine formando parte de un repositorio público.
Anthropic trabaja en medidas para reducir ese riesgo. Mientras llegan, la protección depende de revisar qué información almacenan los asistentes y qué documentos se publican junto con el código. Una precaución bastante elemental que, según los resultados de esta investigación, ha faltado en miles de proyectos.
-
Cultura‘Los anillos de poder 3’ llega a Prime Video: horario y capítulos
-
EconomíaEl consumo eléctrico cae un 7,5 % durante la huelga general del 11-N
-
EconomíaValeria Racu advierte de más protestas por la vivienda tras el 11-N
-
EconomíaCientos de manifestantes cortan la Gran Vía de Madrid por la vivienda
-
EconomíaEl Brent sube a 92,54 dólares y el gas supera los 86 euros por MWh
-
MundoEl Polisario declara la movilización general en el Sáhara Occidental
-
EspañaEl PSPV pierde su enmienda a la ley del suelo al abandonar Les Corts
-
NaturalezaLa borrasca Charles aflojará el jueves: dónde seguirá lloviendo más
-
CulturaAlfredo Duro deja ‘El Chiringuito’ por la huelga y Pedrerol responde
-
EspañaUGT y CCOO denuncian cargas policiales en Madrid y anuncian demandas
-
MundoLeón XIV pide reconciliación ante dos millones de fieles en Luján
-
TecnologíaMegaspeed niega desviar chips Nvidia a China y amenaza con demandar