Lilith.
⌕
Ilustración editorial: Una extensión manipulada de Claude Code instaló una puerta trasera SSH
Ilustración de Lilith · remezcla editorial

El 29 de octubre, entre las 2:27 y las 13:35, hora del Pacífico, Cursor ofreció las versiones maliciosas 2.1.312 y 2.1.313 de la extensión Anthropic.claude-code. El paquete parecía una actualización legítima de una cuenta verificada y Ars Technica calcula que pudo afectar hasta a 5.000 usuarios.

La actualización añadió una clave SSH y reintentos cada 60 segundos

El código malicioso recopilaba el hostname, el nombre de usuario, el sistema operativo, la arquitectura, la ruta del directorio personal, nombres de variables de entorno, directorios de trabajo, el correo configurado en Git y la IP pública. Después enviaba esos datos a un servidor del atacante.

También añadía una clave pública llamada svc-telemetry a authorized_keys, intentaba activar el servicio SSH local y abrir un túnel SSH inverso. En macOS creaba un LaunchAgent. En Windows recurría a una tarea programada o a un script de inicio. Los procesos auxiliares reintentaban la conexión aproximadamente cada 60 segundos.

Cursor retiró las versiones maliciosas, cerró temporalmente el marketplace, rotó claves y colaboró con el proveedor de hosting para desactivar el servidor de mando. La empresa afirma que su auditoría no detectó otras versiones o extensiones afectadas.

Una extensión de desarrollo convive con código fuente y credenciales

Una extensión del editor puede acceder a los directorios de trabajo y se ejecuta con los permisos del IDE. El atacante no necesitaba comprometer el propio modelo Claude. Bastaba con introducir código en un canal de distribución fiable, sobre todo cuando las extensiones pueden actualizarse automáticamente.

Los nombres de variables de entorno no revelan sus valores, pero permiten identificar qué equipo puede guardar credenciales de nube o tokens API valiosos. Un túnel SSH funcional podría abrir después el acceso a archivos, repositorios y otras credenciales disponibles para ese usuario.

El incidente separa la seguridad del producto de la seguridad de su distribución. El código oficial puede seguir limpio mientras una cuenta verificada y un marketplace forman otro eslabón de la cadena. Ese eslabón falló y ni Cursor ni Anthropic han explicado públicamente cómo se tomó la cuenta.

Los fallos del malware limitaron el acceso, pero no borraron sus cambios

Activar un servicio SSH suele exigir permisos de administrador. Cursor sostiene por ello que el intento de crear un túnel plenamente funcional falló en la mayoría de equipos macOS y Windows. El servidor de mando también está desconectado. Esto reduce la probabilidad de acceso remoto, pero no revierte los cambios hechos en el disco.

El paquete aún podía añadir la clave no autorizada, instalar scripts independientes de persistencia y enviar un perfil del equipo. Instalar la versión segura 2.1.314 o desinstalar la extensión no elimina automáticamente esos artefactos. Cursor recomienda buscar la clave svc-telemetry, aislar los equipos afectados y rotar credenciales desde una máquina fiable.

La explicación del robo de la cuenta decidirá la confianza en el marketplace

Falta saber cómo llegó el atacante a la cuenta verificada de distribución. Sin ese dato, los defensores no pueden determinar si rotar claves cierra el problema o si la misma debilidad amenaza a otros editores. Cursor ha descrito mejor el payload y la reparación de equipos que el origen del compromiso.

Las siguientes cifras útiles serán el número exacto de instalaciones, ejecuciones confirmadas del payload y conexiones exitosas. Mientras tanto, las organizaciones deberían vigilar las instalaciones de extensiones como si fueran nuevas dependencias de producción. Una insignia del marketplace confirma el editor mostrado en la interfaz, no la seguridad de cada actualización.

El veredicto de Lilith

La insignia verificada sujetó la puerta mientras una actualización automática introducía una clave SSH ajena. Un marketplace que no explica el robo de la cuenta vende confianza sin recibo.