Un punto de más en el nombre del archivo y Copilot en VS ejecuta comandos

En el paquete mensual de parches del 13 de octubre, Microsoft corrigió una vulnerabilidad de ejecución remota de código relacionada con Copilot, con el identificador CVE-2026-103572, que afecta a Visual Studio (incluidas las versiones 2026, 2022 y anteriores) y a SQL Server Management Studio (SSMS). Su descubridor es el investigador de seguridad Johann Rehberger, que ese mismo día publicó los detalles técnicos en su blog personal, Embrace The Red.

Ambos productos comparten una biblioteca central, Microsoft.VisualStudio.Copilot.Core.dll. La vulnerabilidad está precisamente ahí, de modo que un solo fallo alcanza a los dos productos a la vez.

Cómo un punto esquiva la comprobación

En el IDE, Copilot puede escribir archivos por el usuario, pero configuraciones como .mcp.json o los archivos de ajustes de Visual Studio figuran como objetos protegidos que no debería tocar. El problema está en cómo se comprueba: la lógica de validación compara la cadena original.

La capa Win32 de Windows tiene una regla antigua: los puntos al final del nombre de un archivo se eliminan automáticamente. Rehberger cita la propia documentación de Microsoft: «File and Folder names that end with the ASCII Period (0x2E) character will also be saved without this character.» Así, en el momento de la validación, settings.json. no es la misma cadena que settings.json y la comprobación lo deja pasar; al escribir en disco, el punto final se pierde y lo que se escribe es justamente el archivo protegido.

La cadena de ataque, a grandes rasgos, es esta: el atacante influye primero en Copilot mediante una inyección indirecta de prompts, por ejemplo haciendo que los datos devueltos por un servidor MCP lleven instrucciones ocultas; Copilot las obedece y escribe en configuraciones como .mcp.json el contenido que el atacante quiere; cuando el IDE lee la configuración, lanza el comando malicioso. En Visual Studio, modificar la ruta de ciertas herramientas también puede provocar la ejecución de comandos.

Rehberger informó además de otros problemas: con ..\ se podía recorrer rutas y leer archivos restringidos, algunos archivos filtran identificadores de instalación y el modelo MAI-Code-1-Flash resiste mal la inyección indirecta de prompts. Según su análisis, la corrección de Microsoft consiste en añadir una llamada a GetFullPath, que normaliza primero la ruta, elimina el punto final y resuelve el .. antes de comparar.

La segunda vez del mismo tipo de fallo

No es la primera vez que Rehberger ataca a través de archivos de configuración. En agosto de 2025 reveló una vulnerabilidad de ejecución remota de código en GitHub Copilot dentro de VS Code (CVE-2025-53773): la inyección de prompts hacía que Copilot reescribiera el settings.json del espacio de trabajo y activara el interruptor de ejecución automática de herramientas sin confirmación, tras lo cual se podían ejecutar comandos directamente. Aquella también se corrigió con el Patch Tuesday de Microsoft.

Vistos juntos, los dos casos siguen el mismo patrón: al agente se le permite escribir archivos, los archivos de configuración deciden qué pueden hacer el agente y el IDE, y basta con que el agente consiga escribir en la configuración para que amplíe él mismo sus permisos. La lección de 2025 fue añadir una lista de protección para los archivos de configuración, y es esa capa la que ahora se ha esquivado. La conclusión de Rehberger en su texto es:

«Security controls around agents must hold even when the agent itself is compromised or misaligned.»

Los controles de seguridad en torno a los agentes deben seguir funcionando incluso cuando el propio agente esté comprometido o se comporte de forma desalineada.

Qué deben hacer los usuarios

En cuanto a la cronología: Rehberger envió el informe el 4 de agosto, entre el 4 y el 7 de agosto añadió el impacto en Visual Studio y los detalles de explotación, y volvió a insistir el 30 de agosto; Microsoft lo confirmó el 16 de septiembre, comunicó el 11 de octubre que la recompensa era cero y publicó la corrección el 13 de octubre. Los materiales públicos no explican por qué Microsoft no pagó recompensa.

Para los equipos que usan Visual Studio y SSMS, solo hay una medida: instalar cuanto antes el parche de este mes. Los entornos en los que Copilot se conecta a servidores MCP de terceros corren más riesgo, porque la puerta de entrada de la inyección de prompts son precisamente esos datos externos.

Fuentes: blog técnico Embrace The Red, CocoLoop, Microsoft Security Update Guide; el identificador CVE, la puntuación CVSS y los hitos de divulgación se rigen por el blog del investigador y el aviso de Microsoft.