El plugin de Copilot para JetBrains: un nombre de recurso malformado puede ejecutar código
Un aviso de Microsoft del 14 de julio de 2026 describe un fallo en el plugin de GitHub Copilot para IDE de JetBrains donde un nombre de recurso sin validar, entregado a través de contenido que el asistente procesa, puede llevar a la ejecución de código local en la máquina de un desarrollador.
¿Qué es esto?
El 14 de julio de 2026, como parte de su Patch Tuesday, Microsoft publicó un aviso sobre una vulnerabilidad de gravedad alta en el plugin de GitHub Copilot para IDE de JetBrains — la extensión que lleva Copilot a IntelliJ IDEA, PyCharm, WebStorm, Rider, Android Studio y el resto de la familia JetBrains. Microsoft la califica con CVSS 7,8 («alta») y la etiqueta como ejecución remota de código, aunque el vector de ataque sea local. Todas las versiones del plugin anteriores a 1.13.0-251 están afectadas, y ya hay una versión corregida en el JetBrains Marketplace.
La causa raíz es anodina, y por eso mismo resulta instructiva: el plugin no restringe ni valida suficientemente los nombres de archivos y otros recursos que luego procesa (la clase de debilidad que cita Microsoft es CWE-641, restricción inadecuada de nombres de archivos y recursos). Un nombre de recurso suele pasar desapercibido, pero cuando un asistente de IA ingiere el contenido de un proyecto y actúa sobre él, un nombre controlado por el atacante se convierte en una entrada controlada por el atacante para lo que lo consume.
Cómo funciona
El aviso de Microsoft es deliberadamente parco en cuanto al mecanismo: no nombra la función concreta de Copilot que gestiona mal el nombre del recurso, no incluye ninguna prueba de concepto y no enumera indicadores de compromiso. Lo que sí indica el vector CVSS traza límites claros. El ataque no requiere ningún privilegio, es de baja complejidad y exige interacción del usuario: el desarrollador tiene que abrir algo o interactuar con ello. Un exploit exitoso compromete después la confidencialidad, la integridad y la disponibilidad de la máquina local.
El marco «remoto pero local» es el punto que conviene interiorizar. Nadie puede escanear Internet y alcanzar directamente un IDE vulnerable. El nombre de recurso malicioso tiene que llegar dentro de contenido que el desarrollador decide manipular: un repositorio clonado, un proyecto de ejemplo tentador, una pull request, una actualización de dependencia, un archivo dejado en un gestor de incidencias o en un chat. La acción ordinaria de la víctima —abrir el proyecto, dejar que Copilot lo lea— es el puente que convierte la entrega remota en ejecución local. Es el mismo patrón de «contenido no confiable convertido en instrucción» que ha alimentado un año de hallazgos sobre agentes de código; aquí no pasa por un prompt ingenioso, sino por un nombre que el plugin no logra sanear.
Como el análisis técnico aún no es público y no circula ningún exploit, este artículo se limita al nivel confirmado por Microsoft. Describimos una clase de fallo y su superficie de entrega, no un exploit funcional.
Por qué importa
Las estaciones de trabajo de los desarrolladores están entre las máquinas más sensibles de cualquier organización. Albergan código fuente, credenciales de Git, claves SSH, sesiones de CLI en la nube, tokens de registros de paquetes, material de firma y, a menudo, accesos directos a los pipelines de CI/CD. La ejecución de código bajo la identidad de un desarrollador rara vez se queda dentro del editor; hereda todo aquello que esa cuenta y esa red pueden alcanzar.
El problema de distribución lo empeora. Los plugins de JetBrains suelen ser instalados y actualizados por los propios desarrolladores, al margen de la gestión centralizada de parches. Desplegar la actualización mensual del sistema operativo no hace nada por un plugin de Copilot vulnerable, porque se trata de un fallo a nivel de producto, en la propia extensión. Basta con una sola máquina sin parchear que clone y compile el código de un cliente. El hallazgo encaja además en una tendencia más amplia: a medida que Copilot pasa del autocompletado a un agente que lee proyectos, invoca herramientas y edita archivos, los datos en los que confía se vuelven un objetivo más valioso, y un nombre malformado en un archivo de apariencia inocua es exactamente el tipo de entrada que antes se ignoraba.
Defensas
El aviso trae buenas noticias para los defensores: el exploit no es público, la evaluación SSVC inicial de la CISA lo clasifica como «sin explotación conocida» y «no automatizable», y la corrección es una simple actualización. Eso deja una ventana real para actuar.
-
Actualice el plugin. Lleve el plugin de GitHub Copilot para JetBrains a 1.13.0-251 o posterior. Compruebe la versión manualmente en Ajustes/Preferencias → Plugins en lugar de confiar en que la actualización automática se haya completado, sobre todo donde los desarrolladores la desactivan durante los sprints.
-
Inventaríe, no dé por hecho. Trate esto como una campaña de parcheo a nivel de plugin. Enumere cada estación que ejecute un IDE de JetBrains con Copilot —incluidas las instalaciones desplegadas por sincronización de ajustes o por un repositorio de plugins gestionado— y confirme la versión en cada una.
-
Contenga la vía de entrega. Hasta parchear, evite clonar o abrir repositorios desconocidos, proyectos de ejemplo y código de fuentes no verificadas. Desactivar el plugin de Copilot elimina por completo el componente vulnerable si no se puede desplegar una actualización de inmediato.
-
Mínimo privilegio para las cuentas de desarrollador. Ejecute los IDE como usuario estándar, no como administrador local, y prefiera tokens de corta duración y alcance limitado para GitHub y los proveedores de nube, de modo que la ejecución de código bajo la identidad del desarrollador tenga un radio de impacto menor.
-
Vigile anomalías, con cautela. Sin IOC del proveedor, busque procesos hijos inesperados generados por los procesos del IDE de JetBrains —un intérprete de Python o Node lanzado justo después de abrir un proyecto desconocido— o conexiones salientes inusuales. Trate estas señales como pistas, no como alarmas, porque el desarrollo normal produce un ruido parecido.
Nota: los sandboxes de Copilot en versión preliminar pública (junio de 2026) son defensa en profundidad, pero el aviso no afirma que mitiguen este fallo concreto. Parchee primero.
Estado
| Elemento | Referencia | Fecha | Notas |
|---|---|---|---|
| Aviso de Microsoft (CVE-2026-50510) | MSRC | 2026-07-14 | Plugin de GitHub Copilot para IDE de JetBrains; CVSS 7,8 (alta) |
| Clase de debilidad | MSRC / CWE-641 | 2026-07-14 | Restricción inadecuada de nombres de archivos y recursos |
| Vector de ataque | Vector CVSS | 2026-07-14 | Local, baja complejidad, sin privilegios, requiere interacción del usuario |
| Versión corregida | JetBrains Marketplace | 2026-07-14 | 1.13.0-251 y posteriores |
| Estado de explotación | CISA SSVC | 2026-07-15 | Sin explotación conocida; no automatizable; sin PoC ni IOC públicos |
La conclusión no es que Copilot sea peligroso por naturaleza. Es que un nombre de recurso es una entrada no confiable en cuanto un asistente de IA lo lee de un proyecto — y la misma disciplina de validación que aplicamos a compiladores, scripts de compilación y arneses de prueba debe extenderse ahora a las herramientas que escriben nuestro código.