Archivo temporal inseguro en el comando /copy de Claude Code
El comando /copy de @anthropic-ai/claude-code presentaba una vulnerabilidad de archivo temporal inseguro que exponía las respuestas generadas por el asistente y permitía la escritura arbitraria de archivos mediante ataques de enlace simbólico (symlink).
Descripción técnica
El comando /copy escribía las respuestas en una ruta codificada de forma fija y completamente predecible:
/tmp/claude/response.md
Esta implementación carecía de los controles de seguridad mínimos exigibles en entornos multiusuario:
- Sin aislamiento por UID del usuario que ejecuta el proceso.
- Sin componente aleatorio en el nombre del archivo o del directorio.
- Sin protección frente a la sustitución del archivo por un enlace simbólico.
El archivo resultante se creaba con permisos de lectura universal (modo 0644) dentro de un directorio igualmente accesible por cualquier usuario del sistema (modo 0755). Esta combinación de factores abre dos vectores de ataque diferenciados.
Vector 1: Divulgación de respuestas privilegiadas
Cualquier usuario local sin privilegios podía leer el contenido del archivo /tmp/claude/response.md en el momento en que un usuario privilegiado ejecutara el comando /copy. Dado que las respuestas de Claude Code pueden contener secretos, credenciales, tokens de API u otra información sensible, esta exposición representa un riesgo directo de fuga de información confidencial.
Vector 2: Escritura arbitraria de archivos mediante symlink
Debido a que la ruta del archivo era estática y predecible, un atacante local podía anticiparse a la ejecución del comando /copy por parte de un usuario privilegiado. El flujo del ataque es el siguiente:
- El atacante crea previamente el directorio
/tmp/claude/si no existe. - El atacante planta un enlace simbólico en la ruta esperada, apuntando a un archivo arbitrario del sistema:
ln -s /etc/cron.d/backdoor /tmp/claude/response.md
- Cuando el usuario privilegiado ejecuta
/copy, el proceso sigue el enlace simbólico y escribe el contenido de la respuesta en el archivo elegido por el atacante.
Este comportamiento puede derivar en escalada de privilegios, corrupción de archivos de configuración o ejecución de código arbitrario, dependiendo del archivo objetivo seleccionado por el atacante.
Condiciones de explotación
La explotación de esta vulnerabilidad requiere que se cumplan simultáneamente las siguientes condiciones:
- Un usuario local sin privilegios con acceso al mismo sistema.
- Un usuario privilegiado que ejecute el comando
/copyde Claude Code.
No se requiere interacción de red ni acceso remoto. El ataque es completamente local.
Impacto
Los impactos identificados son dos:
- Divulgación de información: lectura no autorizada de respuestas que pueden contener credenciales, tokens o datos sensibles.
- Escritura arbitraria de archivos: un proceso privilegiado puede ser manipulado para sobrescribir archivos del sistema elegidos por el atacante, lo que puede derivar en escalada de privilegios o compromiso del sistema.
Solución y recomendaciones
Los usuarios que utilizan la actualización automática de Claude Code ya han recibido el parche correspondiente. Los usuarios que realizan actualizaciones manuales deben actualizar a la versión más reciente del paquete @anthropic-ai/claude-code a la mayor brevedad posible.
Anthropics agradece a hackerone.com/c_h4ck_0 el reporte responsable de esta vulnerabilidad.
