Un solo clic en "Sí, y no vuelvas a preguntar" dentro de Claude Code bastó para que miles de credenciales quedaran expuestas en repositorios públicos de GitHub. La firma de seguridad Apiiro encontró 2.539 secretos reales en 1.994 repositorios, según informó El Ecosistema Startup. El origen no fue un ataque externo, sino el propio comportamiento de la herramienta al guardar comandos aprobados.
Las claves
- Apiiro halló 2.539 secretos reales en 1.994 repositorios públicos de GitHub, según El Ecosistema Startup.
- El archivo .claude/settings.local.json guarda el comando exacto aprobado, incluidas contraseñas en texto plano.
- Se identificaron 104.185 copias públicas del archivo en 103.617 repositorios, de las cuales 1.122 contenían al menos un secreto real.
- Más de un tercio de los secretos abre directamente una base de datos, según el desglose de Apiiro.
- Boris Cherny, responsable de Claude Code, admitió en Hacker News que la herramienta nunca ha limpiado los secretos de lo que guarda.
¿Cómo se produjo la filtración?
Claude Code pide permiso antes de ejecutar comandos en la terminal. Cuando el desarrollador elige no volver a ser consultado, la herramienta guarda la regla de permiso en .claude/settings.local.json, dentro de la carpeta del proyecto. Algunas reglas quedan como un patrón corto, como npm test. Otras almacenan el comando exacto, palabra por palabra. Si ese comando incluía una contraseña escrita, el secreto queda en el archivo en texto plano.
Apiiro reprodujo el comportamiento con Opus 5.5 y Fable 5.1, lo que sugiere que se trata de una conducta de la herramienta y no de un modelo específico. La firma comparó 16 agentes de programación y sostiene que Claude Code es el único confirmado que guarda el comando completo aprobado en un archivo del proyecto de forma predeterminada, según El Ecosistema Startup.
¿Qué tipo de secretos quedaron expuestos?
El desglose publicado por Apiiro incluye 379 contraseñas de bases de datos, 43 accesos SSH a servidores públicos (algunos con la contraseña de root dentro de un comando sshpass), 42 tokens de GitHub, GitLab y npm, 23 claves de AWS y 122 claves de rol de servicio de Supabase. Más de un tercio de los secretos abre directamente una base de datos.
Entre los casos graves, la firma mencionó un token de producción de Square y la contraseña del propietario de una base de datos de expedientes médicos. Los secretos afectan a 63 organizaciones, casi todas empresas de software. Una de las organizaciones notificadas confirmó que su clave seguía activa, de acuerdo con El Ecosistema Startup.
¿Por qué borrar el archivo no soluciona el problema?
Anthropic anota el archivo en la lista global de exclusiones de Git de la máquina del desarrollador. Esa protección vive en los ajustes de una sola persona y no viaja con el proyecto: Claude Code nunca lo anota en el .gitignore del repositorio. Eso deja tres puertas abiertas: una carpeta que se convierte en repositorio después, un clon en otra computadora o un archivo que ya entró al historial.
Apiiro contó 104.185 copias públicas del archivo en 103.617 repositorios. De esas, 1.122 contenían al menos un secreto real, y en 539 de 1.105 repositorios rastreados un commit con Claude como coautor fue el que modificó el archivo. Al 2 de noviembre, cada archivo con secretos seguía en la rama principal de su repositorio, y en la mitad llevaba allí al menos 217 días. Las versiones antiguas guardan 734 secretos más en 509 repositorios, y 211 bifurcaciones cargan los mismos valores del original, según la misma fuente.
¿Qué dicen Anthropic y los escáneres de seguridad?
La empresa no publicó un comunicado. Boris Cherny, responsable de Claude Code, respondió en Hacker News y admitió que la herramienta nunca ha limpiado los secretos de lo que guarda. Defendió que el archivo está pensado para quedarse en local y sostuvo que, como Claude Code lo excluye de Git al crearlo, los archivos filtrados se crearon a mano y se subieron después.
Cherny recomendó usar el modo automático en lugar de las listas de permisos y activar el escaneo de secretos en el repositorio "sin importar qué agente uses". También adelantó que el equipo está probando dos mejoras: que el modo automático detecte el filtrado de datos y un escáner básico de secretos integrado. No hay fecha para ninguno de los dos cambios, según El Ecosistema Startup y Xataka.
Apiiro pasó Gitleaks y TruffleHog sobre las 104.185 copias. Marcaron 564 y 643 de los 1.122 archivos con secretos, pero 215 escaparon a ambos. La razón es que estos programas buscan formatos de clave conocidos: un prefijo de proveedor, una cadena larga y aleatoria. Una contraseña escrita después de PGPASSWORD= o mysql -p parece una palabra común dentro de una línea de comandos, y ambos la dejan pasar.
¿Qué se sabe y qué falta por confirmar?
El aviso venía de antes. Un reporte del 11 de agosto de 2025 ya señalaba que los comandos aprobados con claves quedaban guardados palabra por palabra en ese archivo. Un bot lo cerró el 3 de enero tras 60 días sin actividad, y según Apiiro los cuatro reportes relacionados corrieron la misma suerte, sin respuesta de Anthropic en ninguno.
El contexto agrava la situación. Según el informe Octoverse 2026 de GitHub, en los doce meses previos al 30 de septiembre se registraron 17.900 millones de pushes y 34.300 millones de commits, y esa cifra de pushes supera a la de 2024 y 2025 juntas. En septiembre, más del 40% de las pull requests tenían como origen un agente de IA; en marzo era el 17%. Más código generado por agentes significa más archivos de configuración viajando junto al código.
No es el primer tropiezo de esta superficie. En abril de 2026, una filtración accidental del código interno de Claude Code llevó a GitHub a retirar más de 8.100 repositorios por una notificación de derechos de autor de Anthropic, según Europa Press. Y en junio de 2026, el gusano Miasma comprometió 73 repositorios de Microsoft con un payload que se activaba al abrir el proyecto en Claude Code, Cursor o VS Code, según el análisis de StepSecurity recogido por WWWhat's New.
NeoTeo precisó que los 1.379 secretos de los archivos en ramas principales y el recuento ampliado de 2.539 corresponden a conjuntos distintos, y que borrar un archivo actual no elimina las credenciales que hayan quedado en el historial o en forks. La fuente no precisa si Anthropic tiene previsto limpiar los secretos ya guardados ni cuándo podrían estar disponibles las mejoras anunciadas por Cherny.