DIRTY STATIC / DESPACHO Noticias08 NOV. 2026 • 7 MIN DE LECTURA
Un enorme botón de permiso amarillo brillante de advertencia en una pared de concreto en una sala de servidores en blanco y negro, con archivos de papel que se abren y claves visibles, franjas de peligro en el piso
NoticiasINTELIGENCIA PARA LA ERA DE LAS MÁQUINAS

Una filtración de Claude Code expone contraseñas en 1,122 repos

Apiiro dice que una opción de aprobación de Claude Code guardó comandos completos, con secretos incluidos, en un archivo de configuración del proyecto. Este informe cubre cómo funciona la filtración, qué encontró el escaneo de GitHub público, por qué los escáneres normales pasaron por alto tanto de ello, y qué deben rotar y limpiar primero los equipos.

Empezar a leer ↓

Las contraseñas y claves de API que los desarrolladores escribieron en comandos que aprobaron en Claude Code están en repositorios públicos de GitHub, donde cualquiera puede leerlas. La empresa de seguridad Apiiro publicó la investigación el 5 de noviembre de 2026. Encontró 1,122 copias públicas de un archivo de configuración de Claude Code que contenían al menos un secreto.

La causa no es un ataque. Es un clic normal de aprobación. Cuando Claude Code pide ejecutar un comando de terminal y el usuario elige “Yes, and don’t ask again,” la herramienta puede guardar ese comando exacto como una regla de permiso. Si el comando contenía una contraseña o un token, el secreto se guarda con él, en texto simple.

El anuncio

Claude Code es el agente de programación de Anthropic que se ejecuta en la terminal. Por defecto pide permiso antes de ejecutar la mayoría de los comandos de terminal. Su documentación de permisos dice que la opción “don’t ask again” guarda una regla de permiso en .claude/settings.local.json dentro del proyecto, para que los comandos que coincidan puedan ejecutarse sin preguntar en sesiones posteriores.

A veces esa regla es un patrón, como un comando de prueba. A veces es un comando exacto. Apiiro dice que ese segundo caso es el problema, porque la regla guardada contiene el comando palabra por palabra. Una contraseña de base de datos escrita después de una bandera, o un token colocado en una línea de comando, entra en el archivo sin cambios.

La herramienta sí intenta mantener el archivo fuera de git. Su documentación de configuración dice que la primera vez que escribe el archivo en un repositorio git, agrega la ruta del archivo al archivo global de exclusiones de git para ese usuario. Esa protección vive en una cuenta de usuario en una computadora. No viaja con el proyecto, y no hace nada por un archivo que ya fue confirmado. Apiiro también señala que Claude Code nunca agrega el archivo al propio archivo de ignorados a nivel de proyecto.

En 539 de los 1,105 repositorios con filtraciones que los investigadores rastrearon, una confirmación que listaba a Claude como coautor cambió el archivo. Eso sugiere que el agente a menudo participó en confirmar el mismo archivo que contenía el secreto. Apiiro dice que reprodujo el comportamiento de guardado con Opus 5.5 y Fable 5.1, y que el comportamiento pertenece a Claude Code en sí, no al modelo detrás de él.

Filas de archivadores abiertos en una sala de archivo brutalista de concreto, claves amarillas brillantes de advertencia y fichas de papel que se derraman, una silueta solitaria de desarrollador que observa El problema de escala en una imagen: el secreto no está en un archivo, está en el historial, las bifurcaciones y las copias. Ilustración: Dirty Static

Qué encontró el escaneo

Apiiro reunió datos públicos de GitHub del 1 al 3 de noviembre de 2026. Un valor contaba como secreto cuando coincidía con un formato de clave conocido, o cuando una contraseña o un token estaba junto a la dirección de un servidor público, con un revisor de IA también de acuerdo. Ese método importa. Apiiro no probó las credenciales, así que el conteo muestra exposición, no un mal uso probado. Los investigadores no dicen si alguien ha usado estos secretos.

Los casos más fuertes siguen siendo contundentes. Incluyen una clave de nube de nivel administrador de un proveedor de bases de datos, una contraseña de producción de Azure Postgres, un token de producción de Square y la contraseña del propietario de una base de datos que contenía expedientes médicos, según Apiiro. En total, 63 organizaciones están afectadas, la mayoría de ellas empresas de software.

Secretos en los 1,122 archivos actuales, por tipo

Contraseñas de bases de datos379
Inicios de sesión SSH43
Tokens de GitHub, GitLab y npm42
Claves de AWS23

Conteos informados por Apiiro, publicados el 5 de noviembre de 2026. Los tipos se superponen con el total más amplio de 1,379 secretos distintos en esos archivos.

La antigüedad empeora el hallazgo. En la instantánea del 2 de noviembre, cada archivo con un secreto seguía en la rama por defecto de su repositorio. En la mitad de esos repositorios, el archivo había estado allí durante al menos 217 días. Las versiones más antiguas contenían 734 secretos más en 509 repositorios, por lo general en archivos que desde entonces habían sido eliminados de la copia actual.

Al contar esas versiones más antiguas, más los secretos en el archivo compartido .claude/settings.json y en los registros de chat de agentes guardados, Apiiro sitúa el total en 2,539 secretos en 1,994 repositorios. Las bifurcaciones extendieron parte de ello aún más, con 211 bifurcaciones de 74 repositorios que llevaban los mismos secretos que los originales.

Detalles importantes

FactWhat Apiiro reported
Copias públicas escaneadas104,185 archivos en 103,617 repositorios
Archivos actuales con un secreto1,122 archivos, alrededor de 1.1 por ciento
Secretos distintos en esos archivos1,379
Total más amplio con historial y otros archivos2,539 secretos en 1,994 repositorios
Organizaciones afectadas63
Credenciales probadas por ApiiroNinguna
Clave activa confirmadaUna, informada por una empresa notificada

Los escáneres normales de secretos pasaron por alto una parte grande. Apiiro ejecutó gitleaks y TruffleHog sobre las copias. Gitleaks marcó 564 de los 1,122 archivos y TruffleHog marcó 643, mientras 215 no fueron marcados por ninguno. Las omisiones tienen sentido cuando ves la forma. Los escáneres buscan formatos de clave conocidos. Una contraseña simple dentro de una línea de comando normal puede parecer una palabra ordinaria.

Hemos cubierto antes el problema más amplio de higiene alrededor de los agentes de programación, en Elimina Postman, plugins y hooks en Codex y Claude Code y en Ejecuta Claude Code, Codex y OpenCode con Corgi. Este caso es más limitado y más agudo. El archivo riesgoso no es un plugin ni un hook. Es el registro de permisos que la herramienta escribe por ti.

Qué hacer primero

Apiiro da un orden claro, y el orden importa. Rota primero. Cambia cada contraseña, token y clave que el archivo haya contenido alguna vez, antes de limpiar el repositorio. Un secreto que estuvo en el historial público debe tratarse como público, incluso si el archivo actual parece limpio.

Después, busca en tu organización de GitHub .claude/settings.local.json y .claude/settings.json, y revisa el historial de git además de los archivos actuales. Deja de rastrear el archivo local, agrégalo al archivo de ignorados del propio repositorio, y abre la copia en tu propia máquina para eliminar cualquier regla que contenga un secreto.

Luego cambia el hábito que alimentó la filtración. Mantén los secretos fuera de las líneas de comando y refiérete a ellos a través de variables de un gestor de secretos, para que una regla guardada contenga un nombre de variable y no un valor. Aprueba patrones cuando puedas, en lugar de un comando exacto que resulta contener una credencial.

Qué sigue

Los usuarios informaron este comportamiento mucho antes del escaneo. Un informe de error presentado el 11 de agosto de 2025 decía que los comandos aprobados con claves de API y tokens se estaban guardando palabra por palabra en el mismo archivo. Apiiro cita cuatro informes relacionados y dice que ninguno recibió una respuesta de Anthropic, y que los cuatro ahora han sido cerrados por el mismo bot automatizado, el más reciente esta semana.

Esa historia es la parte que Anthropic aún debe responder. Hechos verificados el 8 de noviembre de 2026: ninguna respuesta pública de Anthropic y ningún cambio en la documentación sobre este punto se había informado en la cobertura anterior. Un valor por defecto más seguro ocultaría los secretos de las reglas guardadas, o se negaría a guardar un comando que parece contener uno. Hasta que eso llegue, la protección es tuya, y empieza con una búsqueda en tus propios repositorios hoy.

Fuentes

Body illustration: Dirty Static. Hero image: Dirty Static.

■

FIN DE LA TRANSMISIÓN

Mantén la curiosidad. Cuestiónalo todo.

SIGUE EL DESCENSO

MÁS DE DIRTY STATIC ↘