Vulnerabilidad en Microsoft Azure DevOps Permite Secuestrar Agentes de Revisión AI

Publicado el

Contexto de la Vulnerabilidad

Una vulnerabilidad en el servidor MCP de Azure DevOps de Microsoft permite que un comentario invisible en una solicitud de extracción (PR) manipule el agente de codificación AI del revisor. Esto podría conducir al agente a acceder a proyectos a los que el atacante no tiene derechos, filtrando silenciosamente la información que encuentra.

Funcionamiento de la Falla

La falla, conocida como bug de confusión de delegado, se debe a que uno de los herramientas de Azure DevOps devuelve descripciones de PR sin las medidas de seguridad necesarias para prevenir inyecciones de comandos. Según la firma de seguridad ofensiva Manifold Security, el problema radica en que el contenido creado por otros puede convertirse en instrucciones que el agente actúa sin que el revisor lo perciba.

Las descripciones de PR en Azure DevOps aceptan Markdown, que permite comentarios HTML. En la interfaz web, un comentario HTML se renderiza como nada, lo que significa que el revisor ve un cambio ordinario. Sin embargo, la API REST devuelve el texto tal cual, y el servidor lo envía directamente al agente. Así, el atacante no interactúa directamente con el agente, sino que inserta instrucciones en un contenido que sabe que será leído posteriormente.

Consecuencias de la Manipulación

Cuando el revisor solicita al agente que revise la PR, el texto oculto puede cambiar el objetivo del agente. Dado que este opera con las credenciales del revisor, puede actuar en proyectos a los que el atacante no tiene acceso. Manifold señala que el acceso abarca código fuente, secretos y elementos de trabajo, no limitándose a las páginas wiki que se utilizaron en la prueba de concepto.

La escalada de privilegios se considera normal, ya que los revisores suelen tener un rango superior al de quienes abren la PR. El atacante no obtiene beneficios directos, sino que se beneficia del acceso del revisor a través de un texto que nunca ve.

Medidas de Seguridad Incompletas

Lo que eleva esta vulnerabilidad por encima de una advertencia genérica de inyección de comandos es que Microsoft ya implementó una defensa para ello. Tras examinar el código fuente del servidor, Manifold descubrió que utiliza una técnica de spotlighting para prevenir inyecciones indirectas de comandos, envolviendo el contenido no confiable en delimitadores para que el modelo pueda diferenciar entre datos e instrucciones.

Sin embargo, la herramienta que devuelve una PR, `repo_get_pull_request_by_id`, no llama a este mecanismo de protección, lo que permite que el atacante escriba directamente en un área vulnerable.

Proceso de Explotación

En la prueba de concepto de Manifold, un colaborador abre una PR aparentemente normal, cuyo comentario oculto contiene el payload. Cuando el agente comienza su revisión, el flujo de herramientas desencadena una secuencia que activa una pipeline en un proyecto diferente, accede a una página wiki confidencial y publica esa página como comentario en la PR, donde el atacante puede leerla. Esta cadena de acciones es posible gracias a un único comentario oculto, y cada llamada en ella es permitida para el agente.

Implicaciones Futuras

La demostración asume que una persona inicia la revisión, pero Manifold advierte sobre la tendencia hacia revisiones automatizadas, donde los triggers activan procesos sin intervención humana. En este escenario, la descripción plantada se ejecuta por sí sola, permitiendo que la fuga de información se produzca durante más tiempo sin que nadie lo note.

Este patrón no es nuevo. En mayo de 2025, Invariant Labs mostró un ataque similar contra el servidor MCP de GitHub, utilizando un problema público para que un agente accediera a un repositorio privado y filtrara información a través de una PR.

Recomendaciones de Microsoft

Un portavoz de Microsoft agradeció a Manifold por informar sobre este comportamiento bajo un proceso de divulgación coordinada y lo calificó como "una clase de riesgo AI conocida" que está guiando el trabajo continuo de la empresa en sus medidas de seguridad. Microsoft no ha confirmado si cambiará el código o asignará un CVE, aunque ha recomendado a los clientes limitar el acceso a los proyectos como medida preventiva.

Fuente

Ver noticia original