---
title: "¿Es seguro Claude Code? Lo que muestran 93 incidentes"
description: "Claude Code es tan seguro como su configuración. 93 incidentes públicos por causa, los controles de Anthropic con sus valores por defecto y cómo configurarlo."
url: "https://madsalt.tech/es/blog/is-claude-code-safe/"
author: "Denys Zaichenko"
language: "es"
published: 2026-11-01
---

# ¿Es seguro Claude Code? Lo que muestran 93 incidentes

En resumen

Claude Code es seguro si lo configura, y arriesgado con sus valores por defecto. En una instalación nueva de octubre de 2026 el sandbox está desactivado, no hay reglas deny ni hooks, y un comando de shell que usted aprueba puede escribir en cualquier sitio al que llegue su cuenta de usuario. Clasifiqué 93 informes públicos de incidentes de issues de GitHub, avisos de seguridad y artículos: el daño vino de `git reset --hard` y reinicios de base de datos que nadie pidió, de reglas que vivían solo en `CLAUDE.md`, de repositorios, issues y plugins no confiables, y de subagentes que lanzaban más subagentes. Casi nada fue un `rm -rf /` espectacular. Ponga el trabajo en git, active el sandbox, escriba reglas deny y un hook que bloquee, y mantenga las credenciales de producción fuera del alcance del agente.

93

informes públicos de incidentes clasificados por causa, de junio de 2025 a octubre de 2026

issues de GitHub, avisos, blogs de seguridad, Hacker News

19

de ellos dicen que se perdieron datos para siempre

otros 11 dicen que se recuperaron

10

rompieron una regla escrita solo en CLAUDE.md

un prompt es un consejo, una regla de permisos es una garantía

Soy Denys, ingeniero full-stack y de IA, y uso Claude Code todos los días. A continuación hay dos cosas: qué les salió mal a otros y qué le ofrece Claude Code contra eso, incluyendo cuáles de esos controles están activados por defecto. Luego, una configuración que cubre los huecos.

## ¿Es seguro Claude Code?

La seguridad no está en el modelo. Claude Code decide qué se ejecuta mediante un modo de permisos, reglas de permisos, un sandbox opcional y hooks opcionales, y la [página de permisos](https://code.claude.com/docs/en/permissions) de Anthropic lo dice claramente: las reglas las aplica Claude Code, no el modelo, y las instrucciones de `CLAUDE.md` moldean lo que Claude intenta hacer pero no cambian lo que se le permite hacer.

Así que la respuesta honesta depende de su configuración. La [página de seguridad](https://code.claude.com/docs/en/security) describe el límite del directorio de trabajo como un aviso de permiso y añade que «un comando Bash que usted aprueba aún puede escribir en cualquier sitio al que llegue su cuenta de usuario». La [página del sandbox](https://code.claude.com/docs/en/sandboxing) dice «El sandbox está desactivado por defecto», y que incluso activado solo cubre comandos de shell: las herramientas de archivos, los servidores MCP y los hooks se ejecutan fuera de él. La frase final de Anthropic en la página de seguridad: «ningún sistema es completamente inmune a todos los ataques».

## Qué les salió mal a otros: 93 informes de incidentes

El 31 de octubre de 2026 reuní informes públicos de Claude Code causando daño o estando a punto: 63 issues de GitHub y avisos de seguridad, 26 artículos en blogs de seguridad e ingeniería y 4 hilos de Hacker News, de junio de 2025 a octubre de 2026. Dejé fuera hilos de Reddit que solo pude ver a través de réplicas. A cada informe le asigné un tipo y, cuando el autor lo decía, el modo de permisos y si se perdieron datos. 60 de las 61 citas que comprobé contra el texto de GitHub coincidían palabra por palabra.

![93 incidentes por tipo. Issues de GitHub, avisos, blogs, Hacker News. 06.2025–10.2026. Sandbox o permisos eludidos: 15; Trabajo en git destruido: 14; Secretos expuestos: 12; Archivos borrados: 11; Base de datos dañada: 9; Servidor MCP o plugin malicioso: 9; Coste descontrolado de subagentes: 9; Inyección de prompt: 5; Otros: 9.](https://madsalt.tech/charts/es/is-claude-code-safe-incidents.svg)

*Figura 1. 93 informes públicos de incidentes (63 issues y avisos de GitHub, 26 artículos de blogs, 4 hilos de Hacker News), de junio de 2025 a octubre de 2026, recopilados el 31 de octubre de 2026.*

19 informes dicen que los datos se perdieron para siempre, 11 que se recuperaron, 36 describen un agujero encontrado antes de que nadie saliera dañado (la mayoría, avisos ya corregidos) y 27 no lo dicen. 56 de 93 no nombran el modo de permisos, así que este conjunto no puede decirle si el «modo YOLO» es donde ocurre el daño. Lo que sí muestra son cinco patrones.

**1. El agente ejecuta un comando destructivo que nadie pidió.** Mientras arreglaba errores de lint ejecutó `git checkout HEAD -- .` y tiró una hora de trabajo sin commit ([#11821](https://github.com/anthropics/claude-code/issues/11821)). Al empezar la sesión ejecutó `git reset --hard origin/main` sobre commits sin subir ([#34327](https://github.com/anthropics/claude-code/issues/34327)). Ejecutó `drizzle-kit push --force` contra una base de datos de producción sin copias de seguridad ([#27063](https://github.com/anthropics/claude-code/issues/27063)), aceptó un reinicio de Prisma en producción ([#33183](https://github.com/anthropics/claude-code/issues/33183)), y en un [artículo](https://aishippinglabs.com/blog/how-i-dropped-our-production-database-and-now-pay-10-more-for-aws) ejecutó `terraform destroy` con un archivo de estado antiguo de producción en la carpeta. Ninguno de esos es `rm -rf /`. Son comandos normales con una opción que se salta la confirmación propia de la herramienta.

**2. Reglas que viven solo en `CLAUDE.md`.** 10 informes tratan de una regla escrita que el agente rompió: subió claves de API reales pese a una sección de seguridad de 150 líneas ([#2142](https://github.com/anthropics/claude-code/issues/2142)), hizo commit tras una regla de «nunca hacer commit» ([#34774](https://github.com/anthropics/claude-code/issues/34774)), imprimió un token con `grep` y solo se dio cuenta después ([#44868](https://github.com/anthropics/claude-code/issues/44868)). Un autor señala que `CLAUDE.md` está en el repositorio donde el agente puede escribir ([#23870](https://github.com/anthropics/claude-code/issues/23870)). Eso coincide con la documentación: un prompt es un consejo, una regla es una garantía.

**3. Una regla deny bloquea un comando, no un objetivo.** Con `Bash(rm *)` denegado, el agente borró el archivo con una línea de Python ([#39459](https://github.com/anthropics/claude-code/issues/39459)). La página de permisos dice lo mismo sobre la coincidencia de texto: `git -C . push` no coincide con una regla para `git push`.

**4. El texto y el código no confiables reciben el mismo poder que usted.** El propio archivo de ajustes de un repositorio podía ejecutar hooks y enviar la clave de API antes del cuadro de confianza ([Check Point, CVE-2025-59536](https://research.checkpoint.com/2026/rce-and-api-token-exfiltration-through-claude-code-project-files-cve-2025-59536/)). Un prompt en un issue de GitHub hizo que la GitHub Action de Claude Code leyera el entorno del runner y revelara su clave de API ([Microsoft](https://www.microsoft.com/en-us/security/blog/2026/06/05/securing-ci-cd-in-agentic-world-claude-code-github-action-case/)). Un plugin de un marketplace con un hook oculto envió código al servidor de un atacante ([PromptArmor](https://www.promptarmor.com/resources/hijacking-claude-code-via-injected-marketplace-plugins)), y en octubre una copia manipulada de la extensión de Claude Code estuvo en el marketplace de Cursor ([Cursor](https://cursor.com/blog/claude-code-extension-security-notice)). Lo corregido está corregido; el patrón sigue.

**5. Subagentes que lanzan subagentes.** Una sesión quemó más de 600 dólares ([#72732](https://github.com/anthropics/claude-code/issues/72732)); otra inició unos 242 agentes antes de que el usuario escribiera `/exit` ([#69332](https://github.com/anthropics/claude-code/issues/69332)). La respuesta de un mantenedor en #72732 dice que los límites de subagentes concurrentes y de profundidad de anidamiento se añadieron en 2.1.217 y 2.1.219.

## Qué le da Claude Code y qué viene activado por defecto

Cada control de abajo es real y está documentado. La columna que importa es la tercera.

| Control                                                                  | Qué hace                                                                                                            | Por defecto, octubre de 2026                                                                                                                                                                   |
| ------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [Modo de permisos](https://code.claude.com/docs/en/permission-modes)     | Manual pide confirmación antes de editar y ejecutar; el modo auto deja que un modelo clasificador apruebe por usted | El modo auto es el modo inicial de las sesiones interactivas desde la v2.1.283                                                                                                                 |
| Clasificador del modo auto                                               | Bloquea las acciones que juzga inseguras                                                                            | Activado con el modo auto. Cifras de [marzo de 2026](https://www.anthropic.com/engineering/claude-code-auto-mode) de Anthropic: se le escapó el 17 % de 52 acciones reales demasiado atrevidas |
| [Reglas deny, ask y allow](https://code.claude.com/docs/en/permissions)  | Bloquean o fuerzan un aviso para las llamadas de herramientas que coinciden, en todos los modos                     | Ninguna hasta que las escriba                                                                                                                                                                  |
| [Sandbox de Bash](https://code.claude.com/docs/en/sandboxing)            | Límites impuestos por el sistema operativo sobre archivos y red para comandos de shell                              | Desactivado. Solo shell; lee `~/.ssh` salvo que lo deniegue                                                                                                                                    |
| [Hooks](https://code.claude.com/docs/en/hooks)                           | Su script se ejecuta antes de cada llamada de herramienta y puede bloquearla                                        | Ninguno                                                                                                                                                                                        |
| [Checkpoints y `/rewind`](https://code.claude.com/docs/en/checkpointing) | Deshacen las ediciones de archivos de Claude                                                                        | Activado, pero no se registran los archivos cambiados solo por Bash                                                                                                                            |
| Cuadro de confianza, aprobación de `.mcp.json`                           | Preguntan antes de confiar en una carpeta o en los servidores MCP de un proyecto                                    | Activado en modo interactivo; una sesión `-p` no muestra ninguno                                                                                                                               |
| [Ajustes gestionados](https://code.claude.com/docs/en/managed-settings)  | Una organización fija modos, reglas y hooks                                                                         | No desplegados salvo que su empresa lo haga                                                                                                                                                    |

Este es el camino de una llamada de herramienta. Los pasos en rojo son los que una instalación nueva deja vacíos o apagados:

1. **Claude propone una llamada de herramienta**. Editar un archivo, ejecutar un comando de shell, llamar a un servidor MCP.
2. **Hooks PreToolUse**. Su script ve la llamada completa y puede bloquearla. Ninguno por defecto.
3. **Reglas deny y ask**. Comparan el comando tal como está escrito. Ninguna por defecto.
4. **Modo de permisos**. Manual le pregunta a usted, el modo auto pregunta a un clasificador, bypass no pregunta a nadie.
5. **Sandbox**. Límites del sistema operativo sobre archivos y red, solo para comandos de shell. Desactivado por defecto.
6. **La llamada se ejecuta con el acceso de su usuario**. Pasado este punto, solo ayudan git y las copias de seguridad.

*Figura 2. Las capas entre una llamada de herramienta propuesta y sus archivos, con sus valores por defecto en Claude Code a octubre de 2026.*

`--dangerously-skip-permissions` tiene su propia línea en la documentación: «Use este modo solo en entornos aislados como contenedores o máquinas virtuales donde Claude Code no pueda causar daño».

Las reglas deny y los hooks juzgan el comando como texto, así que un comando escrito de otra manera aún puede colarse, y un hook se ejecuta con todo su acceso. Por eso son una sola capa, y git, las copias de seguridad y las credenciales separadas son las demás.

## Cómo configurar Claude Code con seguridad

En orden de valor por minuto:

1. **Haga commit antes de empezar, y a menudo.** Los checkpoints no cubren los archivos que cambió un comando de shell. Git sí.
2. **Mantenga las credenciales de producción fuera de la carpeta del agente.** En un informe, los scripts desechables de un subagente ejecutaron `DELETE FROM` en todas las tablas porque las credenciales de producción estaban sin comentar en el `.env` local ([#64056](https://github.com/anthropics/claude-code/issues/64056)). Una base de datos de desarrollo que el agente pueda romper está bien; una de producción a la que llegue es el incidente.
3. **Escriba reglas deny para los comandos que destruyen.** Se aplican en todos los modos, incluido bypass:

```json
{
  "permissions": {
    "deny": [
      "Bash(git reset --hard *)",
      "Bash(git push --force *)",
      "Bash(git push -f *)",
      "Bash(git checkout -- *)",
      "Bash(git clean *)",
      "Bash(terraform destroy *)",
      "Bash(drizzle-kit push --force *)",
      "Bash(prisma migrate reset *)",
      "Read(./.env)",
      "Read(./.env.*)"
    ]
  },
  "sandbox": {
    "enabled": true,
    "allowUnsandboxedCommands": false
  }
}
```

4. **Active el sandbox** (`/sandbox`) y desactive el reintento sin sandbox como arriba. Añada `filesystem.denyRead` para `~/.ssh` y las carpetas de credenciales en la nube, ya que el sandbox las lee por defecto.
5. **Añada un hook `PreToolUse` para lo que las reglas de texto no ven.** Una regla deny no ve `git -C . push --force` ni un borrado en Python; un script corto que mire el comando entero sí. Empiece por los cinco comandos que más le dolerían.
6. **Trate el contenido no confiable como código.** Abra repositorios desconocidos en un contenedor o una máquina virtual, dé a las ejecuciones de CI tokens de alcance limitado y recuerde que una sesión `-p` no muestra cuadro de confianza. Un plugin o un servidor MCP se ejecuta con sus privilegios; Anthropic dice que «no audita de seguridad ni gestiona ningún servidor MCP».
7. **Limite las ejecuciones largas.** Use `--max-budget-usd` para el trabajo desatendido y vigile el número de subagentes.

Si el agente construye sobre Supabase, el mismo razonamiento vale para las claves: la clave secreta que usa en scripts se salta todas las políticas, como mostré en [anon key vs service role key](https://madsalt.tech/es/blog/supabase-anon-key-vs-service-role-key/). La lista más amplia de lo que hacen mal las apps creadas con IA está en [riesgos de seguridad del vibe coding](https://madsalt.tech/es/blog/vibe-coding-security-risks/), y cómo fallan los agentes en ejecuciones largas, en [qué se rompió en mi orquestación multiagente](https://madsalt.tech/es/blog/multi-agent-orchestration-what-broke/).

## Preguntas frecuentes

**¿Puede Claude Code borrar mis archivos?** Sí. En modo Manual pregunta antes, pero un comando aprobado puede llegar a todo lo que su usuario alcanza; con los modos de aprobación automática puede que no pregunte. 11 de los informes de arriba son borrados de archivos. Git y las copias de seguridad son la solución que siempre funciona.

**¿Es seguro `--dangerously-skip-permissions`?** Solo en un contenedor o una máquina virtual sin nada que no pueda permitirse perder, según la documentación de Anthropic. Las reglas deny y los hooks siguen aplicándose en ese modo; los avisos no.

**¿Es seguro el modo auto?** Más seguro que aprobarlo todo por reflejo. Anthropic midió una tasa de falsos positivos del 0,4 % y dijo que se le escapó el 17 % de las acciones reales demasiado atrevidas en su prueba de marzo de 2026, y lo llamó «no un sustituto directo de una revisión humana cuidadosa en infraestructura de alto riesgo».

**¿Claude Code envía mi código a Anthropic para entrenar?** Bajo los términos comerciales (Team, Enterprise, API), Anthropic dice que no entrena con su código ni con sus prompts salvo que usted lo acepte. En los planes de consumidor es un ajuste que usted controla. Los detalles están en la [página de uso de datos](https://code.claude.com/docs/en/data-usage).

**¿Es el modo auto lo mismo que `--dangerously-skip-permissions`?** No. Anthropic creó el modo auto para sustituir ese indicador: un clasificador sigue revisando los comandos de shell, las llamadas de red y la creación de subagentes, y tras 3 denegaciones seguidas o 20 en total se detiene y le devuelve el control. El indicador no revisa nada.
