
Un comentario invisible en una solicitud de extracción de Azure DevOps puede antagonizar al propio agente de codificación de IA de un revisor, infiltrándose en un proyecto al que un atacante no tiene permiso para acceder y filtrando secretamente sus hallazgos.
La falla está en el servidor MCP Azure DevOps oficial de Microsoft y funciona porque una de las herramientas de la compañía devuelve descripciones de solicitudes de extracción sin las barreras de seguridad de inyección rápida que la compañía ya había aplicado a otras herramientas.
Manifold Security, una empresa de seguridad ofensiva, detalló el error Confused Delegate esta semana. Microsoft incluye servidores que permiten a los agentes de IA leer e interactuar con Azure DevOps a través de solicitudes de extracción, canalizaciones, wikis y elementos de trabajo con sus propios permisos. Eso es todo lo que importa. El contenido escrito por otros puede convertirse en instrucciones para que los agentes actúen.
La descripción de Azure DevOps PR acepta Markdown y permite comentarios HTML. En la interfaz de usuario web, los comentarios HTML () están ocultos, por lo que los revisores que se desplacen por la descripción verán los cambios normales. La API REST lo devuelve tal cual y el servidor pasa el texto directamente al agente.
La división entre lo que ven los humanos y lo que recibe el modelo es un mecanismo de entrega. El atacante no habla con el agente, sino que incluye instrucciones en el contenido que sabe que se leerán más adelante.
Cuando un revisor le pide a un agente que revise un PR, el texto oculto puede reescribir los objetivos del agente. El agente conserva las credenciales del revisor, lo que le permite operar en proyectos a los que un atacante no tiene permiso para acceder.
Manifold dice que el acceso se extiende no sólo a la página Wiki donde se filtró la prueba de concepto, sino también al código fuente, secretos y elementos de trabajo. La empresa considera que esta escalada es un caso normal porque el revisor suele ser de mayor rango que la persona que abrió la solicitud de extracción. El atacante no gana nada directamente. Pida prestado el acceso del revisor a través de texto que nunca verá.
La ruta de solicitud de extracción cruzó la barandilla
Lo que hace que esto sea mejor que la advertencia general de inyección rápida es que Microsoft ya brinda protección contra ella. Manifold leyó la fuente del servidor y descubrió que utiliza procesamiento destacado. Esta técnica se basa en la propia guía de Microsoft sobre inyección rápida indirecta. Esto rodea el contenido que no es de confianza con delimitadores, lo que permite al modelo distinguir los datos de las instrucciones que debe seguir.
La empresa agregó esto al PR #1062. Allí, la página wiki y las herramientas de registro de compilación pasan su salida a través de un asistente compartido, createExternalContentResponse. La herramienta que devuelve solicitudes de extracción, repo_get_pull_request_by_id, nunca la llama, por lo que devuelve la descripción sin formato. Esta es exactamente la superficie sobre la que escribiría un atacante.
Hacker News confirmó que hasta el 21 de julio, la misma ruta aún no se había revelado en las fuentes actuales.
En la prueba de concepto de Manifold, que se ejecuta en una compilación local de v2.7.0, un colaborador de un proyecto abre un PR de apariencia normal que contiene la carga útil en un comentario oculto. Cuando el agente inicia la revisión, el seguimiento de herramientas ejecuta la cadena. Es decir, activa una canalización en otro proyecto, lee una página Wiki confidencial que el atacante no puede abrir, publica esa página como un comentario de relaciones públicas y el atacante la lee.
Un comentario oculto puso en marcha toda la secuencia, y todas las llamadas que contenía fueron las que el agente podía realizar. El problema, escriben los investigadores, es «el orden y la intención impulsados por textos que los humanos nunca han visto». El equipo reprodujo esto utilizando Copilot CLI y Claude Code, por lo que no está vinculado a un solo agente.
Sin embargo, esta cadena tiene requisitos previos. Un texto de relaciones públicas creado por el atacante, un flujo de trabajo que lo envía al agente, un revisor con acceso más allá del atacante y un agente al que se le da permiso para ejecutar la herramienta sin hacer preguntas.
Manifold confirmó que probaron la última parte como una postura de aprobación automática sin indicaciones por herramienta. Sin este punto de control, los revisores pueden detectar ejecuciones extrañas entre proyectos antes de comenzar. Además de la amplia gama de tokens, en esa actitud es donde se concentran los riesgos.
Si bien la demostración supone que un humano iniciará la revisión, Manifold señala hacia dónde se dirige el equipo, incluidas revisiones automatizadas, clasificación y resúmenes activados. No hay ningún ser humano que indique cada ejecución o lea los resultados. En ese entorno, la explicación plantada se activará automáticamente y la fuga continuará durante mucho tiempo antes de que alguien se dé cuenta.
Este patrón no es nuevo. En mayo de 2025, Invariant Labs demostró la misma clase de ataque contra el servidor MCP de GitHub, utilizando un problema público para obligar a un agente a cargar un repositorio privado, que luego se filtró a través de una solicitud de extracción. Luego se implementó la misma técnica en un flujo de trabajo automatizado del agente GitHub.
Este incidente fue uno de los ejemplos citados por Simon Willison al especificar la trifecta mortal: un agente con acceso a datos personales, exposición a contenido no confiable y un método para transmitir los datos. Un agente con los tres puede volverse contra su dueño con un solo texto, y los agentes más útiles tienen los tres.
Un portavoz de Microsoft agradeció a Manifold por informar este comportamiento bajo divulgación coordinada y dijo que se trata de un «tipo conocido de riesgo de IA» que informará los esfuerzos de seguridad continuos de la compañía. Microsoft no ha dicho si cambiará el código o asignará CVE.
La compañía señaló que el ataque requería que el atacante ya tuviera acceso de escritura al proyecto y que un segundo usuario llamara a la herramienta de IA sobre el contenido, y recomendó a los clientes restringir el acceso al proyecto y «revisar los cambios propuestos antes de pedirle a la herramienta de IA que tomara medidas». El problema es que la carga útil aquí es invisible para la interfaz de revisión humana.
Hasta el 21 de julio, no hay publicaciones de soluciones y The Hacker News no ha encontrado ningún CVE asignado a la falla en la base de datos pública. La última versión, v2.8.0, se envió el 24 de junio. No hay informes públicos sobre el uso de esta tecnología fuera de las propias pruebas de Manifold.
Manifold probó sólo servidores locales basados en PAT, pero le dijo a The Hacker News que la causa raíz «está en el código del servidor, no en el transporte». Según esa lógica, los servidores MCP remotos alojados también estarían expuestos, pero Manifold no lo probó y Microsoft no abordó el problema.
Spotlight sube el listón, pero no finaliza la inyección rápida por sí solo, por lo que la defensa resulta familiar. Proporcione al agente un token de privilegio mínimo y aplíquelo a los proyectos que revisa. Cargue solo los dominios MCP necesarios para la tarea. El servidor local usa el indicador -d para limitarlos.
Excluya la ejecución de canalizaciones, la lectura de wikis y la publicación de comentarios de su inútil conjunto de herramientas de revisión de código. Para comprobar si una cadena ya se está ejecutando, examine el seguimiento de la herramienta del agente en busca de comentarios publicados durante las ejecuciones de canalizaciones entre proyectos, lecturas de wiki o revisiones, y escanee la descripción de PR abierta en busca de comentarios HTML ocultos. Un revisor humano que no puede ver la carga útil no es un control.
Las barandillas sólo funcionan cuando alguien recuerda agregarlas. Debido a que encapsulamos el contenido que no es de confianza en una ruta de respuesta a la vez, nuestra defensa es tan fuerte como la ruta menos cubierta, lo que hace que los envoltorios faltantes en una sola función sean casi invisibles para el mundo exterior. En la superficie de herramientas en constante crecimiento, estas brechas se abren más rápido de lo que piensan quienes intentan auditarlas.
Source link
