LanzamientoAnálisis · En radarTG: @neuraldvig (Нейродвиж)→ original

El botón «No volver a preguntar» de Claude Code guarda contraseñas en un archivo: 2.539 secretos se filtraron en GitHub

Cuando se elige «Sí, no volver a preguntar», Claude Code guarda el comando completo, incluidas las contraseñas y claves incorporadas, en .claude/settings.local.json. Si el archivo acaba en un repositorio público, los secretos quedan visibles para todo el mundo. Apiiro encontró 2.539 secretos en 1.994 repositorios, y eliminar el archivo no sirve porque Git conserva el historial.

Procesado por IA desde TG: @neuraldvig (Нейродвиж); editado por Hamidun News
El botón «No volver a preguntar» de Claude Code guarda contraseñas en un archivo: 2.539 secretos se filtraron en GitHub
Fuente: TG: @neuraldvig (Нейродвиж). Collage: Hamidun News.
Escuchar artículo
Ficha técnica y cifras clave
ParámetroDatos
Fuente originalTG: @neuraldvig (Нейродвиж) ↗
Editor jefe
Dato clave #1Se encontraron 2.539 secretos en 1.994 repositorios públicos
Dato clave #2Las filtraciones incluían contraseñas de bases de datos, credenciales SSH y claves de AWS
Dato clave #3Añada settings.local.json a .gitignore y rote las claves

El botón «Sí, no volver a preguntar» ahorra unos segundos, pero después puede costarle sus claves de acceso a la nube. Investigadores de Apiiro descubrieron que, tras recibir esta confirmación, Claude Code escribe el comando autorizado completo en un archivo de configuración. Si el comando contenía secretos, estos permanecen allí en texto plano.

Cómo ocurre

Imagine que le pide al agente conectarse a una base de datos. Este construye un comando como psql, con la contraseña directamente en la cadena de conexión, o ejecuta curl con un token en la cabecera. Claude Code solicita permiso, usted pulsa «Sí, no volver a preguntar» y, para no volver a solicitarlo en el futuro, el agente guarda una regla de autorización en .claude/settings.local.json. La regla contiene el comando de forma literal, incluida la contraseña.

Después entra en juego el despiste humano habitual. El archivo permanece dentro del proyecto, un desarrollador ejecuta git add . y git push, y el secreto termina en un repositorio público. La palabra local en el nombre del archivo crea la falsa sensación de que nunca saldrá del equipo, pero en la práctica a menudo nadie lo excluye del índice.

La magnitud del problema

Apiiro encontró 2.539 secretos en 1.994 repositorios. Entre ellos había contraseñas de bases de datos, credenciales SSH y claves de AWS. No se trata de una situación teórica: son filtraciones que ya se han producido, y los bots recolectores encuentran muy rápidamente estos datos en los repositorios públicos.

Otro problema es que eliminar el archivo en el siguiente commit no resuelve nada. Git conserva todo el historial, por lo que el secreto sigue siendo accesible en commits anteriores. La única vía fiable es considerar que la clave está comprometida, revocarla de inmediato y emitir una nueva. Limpiar el historial con filter-repo es necesario, pero solo como medida adicional.

Qué hacer ahora mismo

  • Revise sus repositorios para comprobar si contienen .claude/settings.local.json e inspeccione qué se ha guardado en él.
  • Añada el archivo a .gitignore o, preferiblemente, al gitignore global del equipo.
  • Active hooks de pre-commit y escáneres de secretos como gitleaks, o habilite la protección de push en GitHub.
  • No incluya secretos en los comandos: utilice variables de entorno, gestores de secretos y perfiles de AWS.
  • Si el archivo ya se ha publicado, rote de inmediato todas las claves y contraseñas indicadas en él.

Limitaciones y conclusión

En esta historia no hay intención maliciosa por parte del modelo. Es un defecto de diseño de una función práctica: el permiso se recuerda en forma de una línea de comandos completa. Queda por saber con qué rapidez Anthropic cambiará este comportamiento, por ejemplo, guardando una plantilla sin argumentos o enmascarando los valores sensibles. Hasta que eso ocurra, la responsabilidad recae en el equipo.

Para los equipos de producto y los fundadores, la conclusión es más amplia: cualquier herramienta con una función de «recordar mi decisión» crea un nuevo artefacto con datos sensibles. Debe incluirse en el modelo de amenazas igual que los registros, los volcados y los archivos .env. Cada vez concedemos más acceso a los agentes, pero la higiene en torno a sus archivos de configuración sigue rezagada. Dedique hoy diez minutos a una auditoría, antes de que otra persona la haga por usted.

Historia

Preguntas frecuentes sobre la noticia

Cómo ocurre?

Imagine que le pide al agente conectarse a una base de datos. Este construye un comando como psql, con la contraseña directamente en la cadena de conexión, o ejecuta curl con un token en la cabecera. Claude Code solicita permiso, usted pulsa «Sí, no volver a preguntar» y, para no volver a solicitarlo en el futuro, el agente guarda una regla de autorización en .claude/settings.local.json. La regla contiene el comando de forma literal, incluida la contraseña. Después entra en juego el despiste humano habitual.

¿Qué se sabe sobre La magnitud del problema?

Apiiro encontró 2.539 secretos en 1.994 repositorios. Entre ellos había contraseñas de bases de datos, credenciales SSH y claves de AWS. No se trata de una situación teórica: son filtraciones que ya se han producido, y los bots recolectores encuentran muy rápidamente estos datos en los repositorios públicos. Otro problema es que eliminar el archivo en el siguiente commit no resuelve nada. Git conserva todo el historial, por lo que el secreto sigue siendo accesible en commits anteriores.

¿Qué se sabe sobre Qué hacer ahora mismo?

Revise sus repositorios para comprobar si contienen .claude/settings.local.json e inspeccione qué se ha guardado en él. Añada el archivo a .gitignore o, preferiblemente, al gitignore global del equipo. Active hooks de pre-commit y escáneres de secretos como gitleaks, o habilite la protección de push en GitHub. No incluya secretos en los comandos: utilice variables de entorno, gestores de secretos y perfiles de AWS. Si el archivo ya se ha publicado, rote de inmediato todas las claves y contraseñas indicadas en él.

ZK
Zhemal Khamidun — CPO de Alpina Digital, product manager de AlpinaGPT. Crea productos de IA desde 2019. Hamidun News es un proyecto personal que creció hasta ser un agregador en producción con más de 6.000 lectores.
✦ Hands-On AI Engineering · Hamidun Academy

Build & Ship Production AI Agents Without Boilerplate Code

Start your free 72-hour trial at Hamidun Academy (academy.hamidun.com) — interactive lessons on Claude Code & Cursor, live Tech Radar, and production agent templates.

Start 72h Free Trial →Vibe-Coding Intensive
¿Qué te parece?
Cargando comentarios…