Una versión maliciosa de Claude Code, identificada como 2.1.313, estuvo disponible en el marketplace de extensiones para VS Code de Cursor el 29 de octubre. El paquete intentaba añadir una clave SSH controlada por un atacante, mantener un túnel remoto y enviar información del equipo. Cursor estima que hasta 5.000 usuarios pudieron verse afectados y afirma que contactará directamente con ellos.
La extensión usaba el identificador legítimo anthropic.claude-code, pero Cursor aclaró que esa versión no fue desarrollada por Anthropic. El incidente se limitó al marketplace de Cursor: OpenSourceMalware indicó que el paquete npm de Claude Code y las extensiones distribuidas por Open VSX y Microsoft no eran maliciosos. The Hacker News informó que Anthropic publicó la versión 2.1.314 en Open VSX y en el marketplace oficial de VS Code.
Una carga maliciosa junto al código legítimo
La versión alterada estuvo disponible aproximadamente desde las 2:27 hasta las 13:35, hora del Pacífico, del 29 de octubre. Cursor dijo que detectó el incidente, retiró el paquete y bloqueó su distribución. Como medida preventiva, cerró temporalmente su marketplace de VS Code, revisó los accesos y comprobó que no se habían manipulado otras extensiones. Después rotó sus claves, reconstruyó el marketplace y volvió a ponerlo en línea.
El análisis de OpenSourceMalware describió un cargador malicioso de 66 líneas añadido antes del código normal de la extensión. Según ese análisis, bastaba con que VS Code cargara el módulo: no era necesario iniciar una conversación con Claude. La extensión podía conservar su funcionamiento habitual mientras ejecutaba en segundo plano las acciones de la carga añadida.
El programa recopilaba datos como el nombre del equipo y del usuario, el sistema operativo, la arquitectura, el directorio personal, el directorio de trabajo y el correo global configurado en Git. También recogía los nombres de variables de entorno que podían contener términos como KEY, TOKEN, SECRET, PASS, AWS o GCP; no incluía sus valores en el primer envío, según OpenSourceMalware.
Luego intentaba agregar a las claves autorizadas del usuario una clave SSH etiquetada svc-telemetry, habilitar el servicio SSH local y abrir un túnel inverso hacia una máquina controlada por el atacante. También instalaba mecanismos de persistencia: un LaunchAgent en macOS y, en Windows, una tarea programada o un script de inicio alternativo. En su análisis, OpenSourceMalware señaló que el código contemplaba además una rama con cron para Linux.
“It was pulled very quickly, but anyone who has their Claude Code instance set to auto-update could have consumed the malware”
— Jenn Gile, cofundadora de OpenSourceMalware
El servidor quedó fuera de servicio; Cursor pide revisar los equipos
El túnel y el envío de datos apuntaban a la dirección 134.209.82.225. Cursor dijo que colaboró con el proveedor de alojamiento para desconectar el servidor, por lo que esas comunicaciones ya no funcionan. La empresa también advirtió que el paso de habilitar SSH requiere permisos de administrador y habría fallado en la mayoría de los equipos macOS y Windows sin esos privilegios. Eso no impedía que la extensión añadiera la clave, instalara persistencia o enviara los datos recopilados.
Cursor recomienda a quienes instalaron o actualizaron a la versión 2.1.313 desde su marketplace durante el intervalo indicado comprobar si aparece la clave svc-telemetry en sus claves SSH autorizadas. Si la encuentran, pide aislar el equipo, eliminar la clave y los mecanismos de persistencia, y valorar si es necesario reconstruir el sistema. Desinstalar la extensión puede no bastar, porque los scripts de persistencia quedan separados del paquete.
La empresa también aconseja rotar, desde un equipo de confianza, las credenciales y sesiones a las que el dispositivo afectado pudiera haber tenido acceso. OpenSourceMalware no encontró descargas de cargas adicionales en el código analizado; aun así, el túnel habría ofrecido una vía de acceso SSH si el servicio local llegaba a habilitarse. Cursor no ha atribuido públicamente el ataque en el aviso, y The Hacker News señaló que el método usado para introducir la actualización no estaba claro.
Fuentes: Cursor, OpenSourceMalware, The Hacker News