SneakPeek: la vista previa de Claude Code exponía credenciales
Un archivo HTML de más de 256 KB ejecutaba JavaScript en la vista previa de Claude Code Desktop y leía claves SSH y credenciales AWS. Corregido.

Después de las pruebas de Anthropic desconectadas de internet, de las que ya hemos escrito, la nueva noticia afecta a una herramienta que muchos desarrolladores usan a diario: Claude Code Desktop. Los investigadores de Noma Labs (Noma Security) encontraron un fallo, llamado SneakPeek, en el panel de vista previa que muestra los archivos HTML creados o modificados por Claude: un archivo HTML preparado a propósito podía ejecutar JavaScript, leer archivos locales y enviarlos a un servidor remoto. Anthropic lo corrigió, tras un primer intento que los investigadores lograron eludir.
Casi todos los detalles técnicos proceden de CSO Online, que leyó por adelantado el informe de Noma publicado el 14 de octubre; Dark Reading y Cybersecurity360 confirman el descubrimiento, el impacto y la corrección.
Qué ha pasado
El escenario que describe Noma es sencillo: el atacante coloca un archivo HTML malicioso en un repositorio público, de apariencia legítima, y espera a que un desarrollador pida a Claude Code que lo revise. Cuando la aplicación muestra el archivo en la vista previa, el script se ejecuta sin más acciones del usuario. Dark Reading lo define como una amenaza «zero-click»; para ser precisos, según CSO Online basta con pedir que se revise el archivo, sin ningún otro clic.
Entre los datos que el script podía leer y exfiltrar hay claves privadas SSH, credenciales de AWS y secretos de GitHub; Dark Reading menciona también los tokens OAuth de Claude.
La puntuación es CVSS 8.7 (v4.0), gravedad alta, asignada por Anthropic. A 14 de octubre aún no había CVE: según Noma, Anthropic estaba preparando un GitHub Security Advisory y había solicitado el identificador. Las fuentes no indican qué versión de Claude Code Desktop contiene la corrección definitiva.
Detalles técnicos
La vista previa de Claude Code Desktop usa un panel de renderizado basado en Electron y Chromium. Noma identificó tres puntos débiles que, juntos, formaban la cadena:
- Umbral de 256 KB. Los archivos HTML de menos de 256 KB se convertían en URL
data:codificadas en base64, con una Content Security Policy estricta que bloqueaba los scripts. Los más grandes, en cambio, se escribían en disco y se abrían como URLfile://, sin esa CSP. Al atacante le bastaba con inflar el archivo por encima del umbral. - Origen incorrecto. Cargado a través de
file://, el contenido obtenía en Chromium acceso al sistema de archivos local, en lugar de quedar confinado en un origen opaco y aislado. - Filtro inactivo. La aplicación tiene un mecanismo para bloquear el acceso a
file://, pero según Noma no estaba activo durante el renderizado de archivos estáticos, incluido el caso en que el desarrollador abría los informes de las pruebas locales.
La primera corrección de Anthropic bloqueaba las lecturas de archivos desde el contexto principal de la página. Noma la eludió trasladando el código de lectura a un Web Worker, un hilo separado que la corrección no cubría. Tras la notificación del bypass, Anthropic intervino más a fondo, en la arquitectura de la vista previa, y según Noma el problema ya está resuelto por completo.
Hay un punto importante para quien defiende: el script se ejecutaba en el proceso de renderizado de la vista previa, no como acción del agente. Los controles pensados para el modelo, como los permisos de las herramientas y las confirmaciones, no lo veían. Según Sysdig, citada por CSO Online, tampoco los registros del agente recogerían necesariamente la ejecución: las lecturas de archivos y las conexiones salientes solo se ven a nivel de sistema.
Mapeo MITRE ATT&CK orientativo, deducido de los hechos publicados: T1204.002 (User Execution: Malicious File), T1552.001 (Unsecured Credentials: Credentials In Files), T1552.004 (Unsecured Credentials: Private Keys), T1005 (Data from Local System), T1041 (Exfiltration Over C2 Channel).
Impacto para las empresas europeas e italianas
Los equipos de los desarrolladores guardan las llaves de producción: accesos SSH a los servidores, credenciales de la nube, tokens de los repositorios y de las pipelines. Un solo equipo comprometido puede abrir el camino a la infraestructura en la nube de la empresa y, a través de los repositorios, a la cadena de suministro del software.
Para las entidades sujetas a NIS2, el artículo 21 exige medidas de seguridad en la cadena de suministro y en el desarrollo de sistemas: los asistentes de programación con IA entran en ese ámbito y deben inventariarse, actualizarse y gestionarse como cualquier otra herramienta. Lo mismo vale para los proveedores de software de la sanidad y de la administración pública, que trabajan a menudo con código y repositorios de terceros.
Qué hacer ya
- Actualiza Claude Code Desktop a la última versión en todos los equipos y comprueba que las actualizaciones automáticas estén activas; sigue el GitHub Security Advisory anunciado para conocer la versión corregida y el CVE.
- Haz inventario: qué máquinas tienen Claude Code Desktop u otros asistentes con vista previa HTML, y con qué versiones.
- Elimina de los equipos las credenciales de larga duración (
~/.aws/credentials, claves SSH sin passphrase, tokens personales): usa credenciales temporales y con permisos limitados, como sugiere también Noma. - Rota las credenciales si, antes de actualizar, los desarrolladores hicieron revisar a Claude Code Desktop archivos HTML de repositorios no fiables.
- Abre el código de terceros en entornos separados (máquinas virtuales, contenedores, entornos de desarrollo remotos sin secretos), no en el equipo con acceso a producción.
- Vigila a nivel de sistema las lecturas de archivos como
~/.ssh/id_*o~/.aws/credentialspor parte de los procesos de la aplicación y las conexiones salientes hacia destinos inusuales.
Cómo ayuda ARXDOME
ARX Sentry mantiene el inventario del software de cada equipo, así sabes dónde está instalado Claude Code Desktop y en qué versión, y recoge registros y eventos de seguridad de máquinas y firewalls: las ejecuciones sospechosas y el tráfico saliente bloqueado llegan a las páginas del SOC. ARX Horizon enriquece cada conexión con la reputación de las direcciones de destino.
Última actualización:


