EDICIÓN Nº 047 · Sábado 31 oct 2026
Tecnología

Una extensión de programación con IA trajo una puerta trasera durante 11 horas

Una versión manipulada de la extensión Claude Code, distribuida en la tienda del editor Cursor, metía una llave SSH ajena en los equipos. Te contamos cómo funcionaba y qué conviene revisar.

Redacción2026-10-31ciberseguridad · cadena de suministro · extensiones · SSH · programación
Coder screen shot
Foto: Wikideas1 · CC0 · Wikimedia Commons · realzada con IA

Las extensiones de los editores de código suelen instalarse casi sin pensarlo: se pulsa un botón y después se actualizan solas. Precisamente por eso son un objetivo tan atractivo. El 29 de octubre de 2026, durante algo más de once horas, la tienda de extensiones del editor Cursor distribuyó una versión manipulada de la extensión oficial de Claude Code, el asistente de programación de Anthropic. Esa versión, la 2.1.313, intentaba abrir una puerta trasera en el ordenador de quien la instalaba. Según los análisis publicados, estuvo disponible entre las 9:27 y las 20:35 (hora UTC).

Cursor confirmó el incidente y aseguró que esa versión no la había desarrollado Anthropic. Lo que todavía no se sabe es cómo consiguió alguien publicarla bajo la identidad del editor verificado. Anthropic no ha hecho declaraciones públicas sobre el caso, según recogen las fuentes consultadas.

Cómo funcionaba el código malicioso

El equipo de investigación OpenSourceMalware desmontó el paquete y lo explicó con detalle. Los atacantes añadieron unas 66 líneas al principio del archivo principal de la extensión. El resto funcionaba con normalidad, así que el usuario no notaba nada raro. El código se ejecutaba nada más cargarse la extensión, sin necesidad de abrir el chat ni de aceptar nada, y ocultaba casi todos sus errores para no dejar rastro visible.

ESeeCode screen capture
Foto: Jacobo221 · CC BY-SA 4.0 · Wikimedia Commons

Según ese análisis, hacía lo siguiente:

  • Recogía información del equipo: nombre de la máquina y del usuario, sistema operativo, arquitectura, carpetas de trabajo, el correo configurado en Git y la IP pública. También anotaba los nombres (no los valores) de hasta 40 variables de entorno que parecían contener claves o tokens, y lo enviaba todo a un servidor externo.
  • Plantaba una llave de acceso: añadía una clave pública SSH del atacante, con el comentario «svc-telemetry», al archivo de llaves autorizadas del usuario. Con ella, quien tuviera la clave privada podía entrar en el equipo sin contraseña.
  • Intentaba encender el servidor SSH en macOS, Linux y Windows, y crear un túnel inverso hacia el servidor del atacante. Ese túnel permite entrar en una máquina aunque esté detrás de un router o un cortafuegos.
  • Se aseguraba de sobrevivir: dejaba tareas de arranque automático (un LaunchAgent en macOS, una tarea programada en Windows y una entrada de cron en Linux).

Algunas cosas jugaron a favor de las víctimas. Encender el servidor SSH requiere permisos de administrador, y según Cursor ese paso fallaba salvo que el editor se hubiera lanzado con privilegios elevados. Además, varios análisis señalan fallos en el propio código del atacante. Tampoco se ha detectado una segunda fase: el programa no descargaba nada más.

Qué se sabe y qué no

Cursor retiró la versión, apagó toda su tienda de extensiones mientras auditaba los accesos, rotó sus claves y consiguió que el proveedor de alojamiento desconectara el servidor del atacante. En su primer aviso calculó que el problema afectaba como mucho a 5.000 usuarios. Más tarde revisó la nota, retiró esa cifra y añadió que la versión 2.1.312 descargada desde su tienda también podía estar afectada en Mac con chip Apple y en Windows. La versión limpia es la 2.1.314.

AppleIIeSerialTerminal
Foto: Blake Patterson · CC BY 2.0 · Wikimedia Commons

Al principio hubo confusión sobre el origen. Los primeros informes apuntaban a Open VSX, el repositorio abierto de extensiones, pero después se atribuyó a la tienda propia de Cursor. Según esos análisis, las versiones del Marketplace de Visual Studio Code y del paquete de línea de comandos en npm no se consideraron maliciosas. Siguen sin respuesta dos preguntas: cómo se publicó el paquete y quién está detrás.

Qué conviene hacer si usas Cursor

Lo más importante es que actualizar o desinstalar la extensión no basta. La llave plantada y las tareas de arranque siguen en el sistema. Las recomendaciones que recogen los análisis son estas:

IBM 3279-S3G
Foto: Patrick Finnegan · CC BY 2.0 · Wikimedia Commons
  • Buscar el comentario «svc-telemetry» en el archivo de llaves SSH autorizadas (en Windows, también en el archivo de llaves de administrador).
  • Revisar las tareas de inicio sospechosas y los procesos ssh o autossh que abran túneles que no reconozcas.
  • Si aparece algo, aislar el equipo, usar los scripts de limpieza que publicó Cursor y cambiar desde otro dispositivo las claves SSH, los tokens de GitHub, npm y servicios en la nube, y las claves de API.

OpenSourceMalware va un paso más allá y aconseja reinstalar el equipo:

«Rebuilding the host is safer than assuming removal of known artifacts restores trust» (OpenSourceMalware). Es decir, reinstalar es más seguro que suponer que borrar lo conocido devuelve la confianza.

Por qué importa

Este caso es un ejemplo de ataque a la cadena de suministro: no se engaña al usuario, sino que se contamina algo en lo que ya confía. Las extensiones de los editores se ejecutan con los mismos permisos que el usuario, se actualizan solas y, en el caso de los asistentes de IA, suelen tener acceso a carpetas con código y credenciales. Una sola versión manipulada en una tienda basta para llegar a miles de desarrolladores en unas horas. Por eso merece la pena desactivar las actualizaciones automáticas en equipos sensibles, limitar de qué tiendas se instalan extensiones y no guardar secretos en variables de entorno a la vista.

Texto generado con inteligencia artificial a partir de las fuentes citadas, sin revisión humana individual (Reglamento UE 2024/1689, art. 50). Las fotos llevan su crédito y licencia; las marcadas como realzadas se han retocado con IA sin alterar su contenido.

Comentarios