Skip to main content

Actualización de las pruebas de Snyk Security Labs: editor de código con IA Cursor.com

Escrito por
Headshot of Danny Allan

Danny Allan

feature automation pink

14 de enero de 2025

0 minutos de lectura

El equipo de Security Labs de Snyk busca encontrar vulnerabilidades en el software que usan desarrolladores de todo el mundo y ayudar a mitigarlas, con el objetivo general de mejorar la seguridad del software. Para lograrlo, analizamos las herramientas que usan los desarrolladores, incluidas soluciones de software nuevas y populares. Ante el meteórico auge de las herramientas de IA —en particular, el rápido crecimiento de los entornos de desarrollo con IA—, hemos incluido este tipo de software en nuestros ciclos de investigación.

Uno de estos programas es el editor de código con IA de Cursor, que compite con VSCode y otros IDE populares para desarrolladores. Este software integra la asistencia de código con IA en la experiencia de desarrollo. Con investigaciones como esta, esperamos no encontrar vulnerabilidades. Sin embargo, si las encontramos, tendremos la oportunidad de divulgarlas de manera responsable para que todos los desarrolladores que usan este software estén más protegidos. Cursor alienta públicamente a reportar vulnerabilidades de seguridad en su producto y ha publicado una guía y habilitado un canal para recibir estos reportes.

Como parte de su investigación, el equipo de investigación de Snyk Security Labs determinó que el software incluye varias extensiones privadas. Las extensiones de VSCode (en las que se basa el editor de código con IA de Cursor) se crean como las dependencias clásicas de Node.js, y se describen mediante archivos package.json. Nuestra hipótesis sobre un posible vector de ataque era que Cursor trataba internamente las extensiones de VSCode como paquetes de NPM y las obtenía de un repositorio interno durante las compilaciones. Si ese hubiera sido el caso (ahora sabemos que no lo era) y el sistema de compilación estuviera mal configurado, podría existir el riesgo de un ataque de confusión de dependencias. Aunque nos parecía poco probable que estuviera configurado así, valía la pena investigarlo, ya que, de ser así, podría haber tenido un impacto considerable tanto en los sistemas de Cursor como en sus usuarios.

Para poner a prueba esta hipótesis, subimos paquetes al repositorio público de NPM con nombres que coincidían con los que sospechábamos que formaban parte del proceso de compilación del editor de código con IA de Cursor. Esta es una técnica común para detectar posibles ataques de confusión de dependencias. Era muy poco probable que estos paquetes los instalaran desarrolladores o sistemas ajenos a los que probábamos en Cursor; de hecho, era poco probable que alguien los instalara. Aun así, en las descripciones indicamos que eran paquetes de prueba del equipo de Security Labs de Snyk, incluimos una dirección de correo electrónico directa para contactar al autor y establecimos un período breve de disponibilidad (24 horas). El código fuente de estos paquetes era muy pequeño y no intentaba ocultar su comportamiento. Los paquetes enviaban solicitudes HTTP a nuestros investigadores con el nombre de usuario, el nombre del host, el directorio actual y, en versiones posteriores, las variables de entorno. Las comunicaciones de salida eran necesarias para determinar si se había producido una instalación completamente «a ciegas». En la versión posterior, los investigadores de Snyk agregaron campos adicionales a los datos recibidos para reducir los falsos positivos causados por escáneres automatizados que descargaran y ejecutaran los paquetes, algo que quedaba fuera del alcance de la prueba de concepto. Para enviar informes confiables y precisos al equipo de seguridad de Cursor, necesitábamos confirmar que Cursor había ejecutado las instalaciones y que el problema de confusión de dependencias que habíamos identificado era legítimo.

En definitiva, Snyk Security Labs no encontró indicios de que Cursor fuera vulnerable a ataques de confusión de dependencias. Además, durante las pruebas no se nos revelaron datos confidenciales. Estos vectores de ataque —de baja complejidad y probabilidad, pero de alto impacto— son un tema de investigación importante, ya que la facilidad para llevarlos a cabo podría hacer que los actores maliciosos los ejecuten con relativa facilidad. Snyk Security Labs realiza investigaciones de vulnerabilidades con regularidad y se esfuerza por mantener los más altos estándares de pruebas para mejorar la seguridad de los desarrolladores.

Al probar estas vulnerabilidades, Security Labs de Snyk espera adelantarse a los atacantes y garantizar que el software y los sistemas que usan a diario los desarrolladores de todo el mundo sean seguros.

A los desarrolladores les encanta. Los equipos de seguridad confían en él.

Las herramientas de Snyk, diseñadas primero para desarrolladores, ofrecen seguridad integrada y automatizada que satisface tus necesidades de gobernanza y cumplimiento.