Apiiro informó el 5 de noviembre de 2026 de que una orden aprobada en Claude Code con la opción «Yes, and don’t ask again» puede guardarse en .claude/settings.local.json. Si la orden contiene una contraseña o un token y el archivo se publica en GitHub, esa credencial puede quedar expuesta. Cyber Security News recogió el mecanismo descrito por Apiiro.

Cómo una aprobación puede guardar una clave

Comentario en inglés de SavvyNik sobre el mecanismo, el historial de Git y las medidas de respuesta

La opción «Yes, and don’t ask again» guarda la orden aprobada como una regla permitida. Si la orden incluye una credencial escrita directamente en ella, esta puede quedar guardada en texto claro dentro de .claude/settings.local.json, un archivo de configuración del proyecto. El riesgo aparece si el archivo llega a un repositorio público.

Qué cuentan las cifras de Apiiro

Apiiro examinó 104.185 copias públicas de .claude/settings.local.json, repartidas en 103.617 repositorios, y encontró secretos en 1.122 copias, aproximadamente el 1,1 %. Esas copias contenían 1.379 secretos distintos. El recuento más amplio de Apiiro llegó a 2.539 secretos en 1.994 repositorios y 63 organizaciones; incluía también el historial de Git y otros archivos relacionados con agentes. Son cifras de alcances distintos, según los datos del estudio recogidos por Pasquale Pillitteri.

Apiiro dijo que no probó las credenciales. Una empresa confirmó que una clave expuesta estaba activa. La muestra se limitó a datos públicos de GitHub, así que no mide la frecuencia de exposición en repositorios privados ni entre todas las personas que usan Claude Code.

Por qué borrar el archivo no basta

Los reportes describen una exclusión global de Git que no añade automáticamente una regla al .gitignore del repositorio, no protege archivos que ya estén bajo seguimiento y no acompaña al proyecto. Por eso, borrar la copia actual no elimina por sí solo versiones guardadas en el historial de Git ni copias en bifurcaciones o clones.

Qué hacer ante una posible exposición

  1. Revoca o rota primero la credencial que pudiera haberse publicado. Borrar el archivo no invalida la clave.
  2. Busca .claude/settings.local.json en el repositorio y revisa el historial de Git. Retira el archivo del seguimiento y añade la exclusión adecuada al .gitignore del proyecto.
  3. Revisa la configuración local y evita incluir contraseñas o tokens literales en órdenes que Claude Code vaya a guardar como reglas permitidas.
  4. Usa herramientas de detección de secretos como apoyo, no como única comprobación. En el conjunto de 1.122 archivos con secretos, Apiiro informó que 215 no fueron detectados ni por Gitleaks ni por TruffleHog. Los reportes señalan que las contraseñas incluidas en órdenes o encabezados de solicitudes pueden no coincidir con los formatos reconocibles de claves de proveedor.
Si una credencial pudo llegar a Git, revócala o rótala antes de limpiar el repositorio: borrar el archivo no invalida la clave ni elimina las copias del historial.