{"id":1694,"date":"2026-07-22T08:06:44","date_gmt":"2026-07-22T08:06:44","guid":{"rendered":"https:\/\/cybercolombia.co\/index.php\/2026\/07\/22\/la-falla-de-microsoft-azure-devops-mcp-permite-que-los-comentarios-de-relaciones-publicas-ocultos-se-apropien-de-los-agentes-de-revision-de-ia\/"},"modified":"2026-07-22T08:06:44","modified_gmt":"2026-07-22T08:06:44","slug":"la-falla-de-microsoft-azure-devops-mcp-permite-que-los-comentarios-de-relaciones-publicas-ocultos-se-apropien-de-los-agentes-de-revision-de-ia","status":"publish","type":"post","link":"https:\/\/cybercolombia.co\/index.php\/2026\/07\/22\/la-falla-de-microsoft-azure-devops-mcp-permite-que-los-comentarios-de-relaciones-publicas-ocultos-se-apropien-de-los-agentes-de-revision-de-ia\/","title":{"rendered":"La falla de Microsoft Azure DevOps MCP permite que los comentarios de relaciones p\u00fablicas ocultos se apropien de los agentes de revisi\u00f3n de IA"},"content":{"rendered":"<div id=\"articlebody\">\n<p>Un solo comentario invisible en una solicitud de extracci\u00f3n de Azure DevOps puede poner al propio agente de codificaci\u00f3n de IA del revisor en su contra, llev\u00e1ndolo a proyectos a los que el atacante no tiene derecho a acceder y filtrando silenciosamente lo que encuentra.<\/p>\n<p>La falla est\u00e1 en el oficial de Microsoft. <a href=\"https:\/\/github.com\/microsoft\/azure-devops-mcp\" target=\"_blank\">Servidor Azure DevOps MCP<\/a>y funciona porque una de sus herramientas devuelve descripciones de solicitudes de extracci\u00f3n sin una barrera de inyecci\u00f3n r\u00e1pida que la empresa ya hab\u00eda aplicado a otras.<\/p>\n<p>Empresa de seguridad ofensiva <a href=\"https:\/\/www.manifold.security\/blog\/azure-devops-mcp-server-vulnerability\" target=\"_blank\">Seguridad m\u00faltiple<\/a> detall\u00f3 el error del diputado confundido esta semana. Microsoft env\u00eda el servidor para que los agentes de IA puedan leer y operar Azure DevOps para un usuario, a trav\u00e9s de solicitudes de extracci\u00f3n, canalizaciones, wikis y elementos de trabajo, todo con los permisos propios del usuario. Ese es el problema: el contenido que escribieron otras personas puede convertirse en instrucciones sobre las que act\u00faa el agente.<\/p>\n<p>Las descripciones de Azure DevOps PR aceptan Markdown, que permite comentarios HTML. En la interfaz de usuario web, un comentario HTML (<!-- ... -->) se muestra como nada, por lo que un revisor que se desplaza por la descripci\u00f3n ve un cambio normal. La API REST lo devuelve palabra por palabra y el servidor entrega ese texto directamente al agente.<\/p>\n<p>Esa divisi\u00f3n entre lo que ve el humano y lo que recibe el modelo es el mecanismo de entrega: el atacante nunca habla con el agente, sino que coloca instrucciones en un contenido que sabe que leer\u00e1 m\u00e1s tarde.<\/p>\n<p>Cuando el revisor le pide a su agente que revise el PR, el texto oculto puede reescribir el objetivo del agente. El agente lleva las credenciales del revisor, por lo que puede actuar en proyectos a los que el atacante no tiene derecho a acceder.<\/p>\n<div class=\"dog_two clear\">\n<div class=\"cf\"><a href=\"https:\/\/thehackernews.uk\/ai-vuln-protection-d\" rel=\"nofollow noopener sponsored\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" class=\"lazyload\" alt=\"Ciberseguridad\" src=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEjQl2axNwsfhbXOFynrg_uAZsvHi3OvNGSA8KJO-BKR8Xm3x7yjKV3EvfY4v5mwXx6LF0uWFb9h9d9iAV_Pi-YYhqimX9wx4OaLdDJEdR215Xrxq_PAtXkaLfQso4pTSjbj6fvh_ZTliLpzWZSZfcoZgyXtKwhN-SSDDlmbtUqGLshc0KqYQGWYHMN52Sl1\/s728-e100\/zz-d.jpg\" width=\"729\" height=\"91\"\/><\/a><\/div>\n<\/div>\n<p>Manifold dice que el acceso alcanza el c\u00f3digo fuente, los secretos y los elementos de trabajo, no solo la p\u00e1gina wiki, su prueba de concepto exfiltrada. La firma considera que la escalada es un caso normal, ya que los revisores suelen ser de mayor rango que quien abri\u00f3 la solicitud de extracci\u00f3n. El atacante no gana nada directamente; toman prestado el acceso del revisor a trav\u00e9s de texto que el revisor nunca ve.<\/p>\n<h2>La ruta de la solicitud de extracci\u00f3n pas\u00f3 por alto la barandilla<\/h2>\n<p>Lo que eleva esto por encima de una advertencia gen\u00e9rica de inyecci\u00f3n r\u00e1pida es que Microsoft ya envi\u00f3 una defensa para ello. Al leer la fuente del servidor, Manifold descubri\u00f3 que utiliza foco, una t\u00e9cnica de <a href=\"https:\/\/www.microsoft.com\/en-us\/msrc\/blog\/2025\/07\/how-microsoft-defends-against-indirect-prompt-injection-attacks\" target=\"_blank\">La propia gu\u00eda de Microsoft sobre inyecci\u00f3n r\u00e1pida indirecta<\/a>: envuelve el contenido que no es de confianza en delimitadores para que el modelo pueda diferenciar los datos de las instrucciones que debe seguir.<\/p>\n<p>La empresa lo a\u00f1adi\u00f3 en <a href=\"https:\/\/github.com\/microsoft\/azure-devops-mcp\/pull\/1062\" target=\"_blank\">PR #1062<\/a>donde las herramientas de p\u00e1gina wiki y registro de compilaci\u00f3n pasan su salida a trav\u00e9s de un asistente compartido, createExternalContentResponse. La herramienta que devuelve una solicitud de extracci\u00f3n, repo_get_pull_request_by_id, nunca la llama, por lo que devuelve la descripci\u00f3n sin formato, que es exactamente la superficie en la que escribe un atacante.<\/p>\n<p>The Hacker News confirm\u00f3 lo mismo <a href=\"https:\/\/github.com\/microsoft\/azure-devops-mcp\/blob\/main\/src\/tools\/repositories.ts\" target=\"_blank\">camino<\/a> todav\u00eda est\u00e1 descubierto en la fuente actual al 21 de julio.<\/p>\n<p>En la prueba de concepto de Manifold, ejecutada en una compilaci\u00f3n local de v2.7.0, un colaborador de un proyecto abre un PR de apariencia normal cuyo comentario oculto lleva la carga \u00fatil. Una vez que el agente comienza su revisi\u00f3n, el seguimiento de la herramienta ejecuta una cadena: activa una canalizaci\u00f3n en un proyecto diferente, lee una p\u00e1gina wiki confidencial que el atacante no puede abrir y publica esa p\u00e1gina como un comentario en el PR, donde el atacante la lee.<\/p>\n<p>Un \u00fanico comentario oculto impuls\u00f3 toda la secuencia, y cada llamada que conten\u00eda era una que el agente pod\u00eda realizar. El problema, escribieron los investigadores, era \u00abla secuencia y la intenci\u00f3n, impulsadas por un texto que un humano nunca vio\u00bb. El equipo lo reprodujo tanto con Copilot CLI como con Claude Code, por lo que no est\u00e1 vinculado a un solo agente.<\/p>\n<p>Sin embargo, la cadena tiene requisitos previos: texto de relaciones p\u00fablicas escrito por el atacante, un flujo de trabajo que lo env\u00eda a un agente, un revisor cuyo acceso excede el del atacante y un agente autorizado para ejecutar herramientas sin preguntar.<\/p>\n<p>Manifold confirm\u00f3 que prob\u00f3 esa \u00faltima parte como una postura de aprobaci\u00f3n autom\u00e1tica sin mensajes por herramienta, el punto de control que de otro modo permitir\u00eda a un revisor detectar una ejecuci\u00f3n extra\u00f1a entre proyectos antes de que se active. Un token amplio m\u00e1s esa postura es donde se concentra el riesgo.<\/p>\n<p>La demostraci\u00f3n supone que una persona inicia la revisi\u00f3n, pero Manifold se\u00f1ala hacia d\u00f3nde se dirigen los equipos: revisi\u00f3n automatizada, clasificaci\u00f3n y res\u00famenes generados por activadores, sin que ning\u00fan ser humano indique cada ejecuci\u00f3n o lea cada resultado. En esa configuraci\u00f3n, la descripci\u00f3n colocada se activa por s\u00ed sola y la fuga dura m\u00e1s tiempo antes de que alguien se d\u00e9 cuenta.<\/p>\n<p>El patr\u00f3n no es nuevo. En mayo de 2025, Invariant Labs mostr\u00f3 el mismo tipo de ataque contra <a href=\"https:\/\/invariantlabs.ai\/blog\/mcp-github-vulnerability\" target=\"_blank\">Servidor MCP de GitHub<\/a>utilizando un problema p\u00fablico para obligar a un agente a leer un repositorio privado y filtrarlo a trav\u00e9s de una solicitud de extracci\u00f3n; Desde entonces, la misma t\u00e9cnica ha llegado a los flujos de trabajo automatizados del agente GitHub.<\/p>\n<p>Ese caso fue uno de los ejemplos que se\u00f1al\u00f3 Simon Willison al nombrar al <a href=\"https:\/\/simonwillison.net\/2025\/Jun\/16\/the-lethal-trifecta\/\" target=\"_blank\">trifecta letal<\/a>: un agente con acceso a datos privados, exposici\u00f3n a contenido no confiable y una forma de enviar datos. Cualquier agente con los tres puede volverse contra su propietario con un solo fragmento de texto, y los m\u00e1s \u00fatiles tienen los tres.<\/p>\n<p>Un portavoz de Microsoft agradeci\u00f3 a Manifold por informar del comportamiento bajo divulgaci\u00f3n coordinada y lo llam\u00f3 \u00abuna clase conocida de riesgo de IA\u00bb que informa el trabajo continuo de la compa\u00f1\u00eda sobre sus salvaguardas. Microsoft no dijo si cambiar\u00eda el c\u00f3digo o asignar\u00eda un CVE.<\/p>\n<div class=\"dog_two clear\">\n<div class=\"cf\"><a href=\"https:\/\/thehackernews.uk\/sygnia-cyber-response-d-1\" rel=\"nofollow noopener sponsored\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" class=\"lazyload\" alt=\"Ciberseguridad\" src=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEiBxLQDy7VdLze43eMmpRllTXaPKPfB_veNUxQlqIu3-68GBJtegkhDGCqtaiSymOQviROdxln1FSd4zdMp5Jv9jeF1xQxLPc9uo9H7zW2nWHNax0wT0Y8JRj-zyUfbaCLqhxSfQT2sCfhWMBPL6UVgsh5RYVNVxwus_mW_BY9Ptwz3z7iF0_LWOnte-gqg\/s1600\/sy-d-1.jpg\" width=\"729\" height=\"91\"\/><\/a><\/div>\n<\/div>\n<p>Se\u00f1al\u00f3 que el ataque requiere que un atacante ya tenga acceso de escritura a un proyecto y un segundo usuario para invocar una herramienta de IA sobre el contenido, y recomend\u00f3 a los clientes limitar el acceso al proyecto y \u00abrevisar los cambios propuestos antes de pedirle a una herramienta de IA que act\u00fae en consecuencia\u00bb. El problema es que la carga \u00fatil aqu\u00ed es invisible en la interfaz que revisa un humano.<\/p>\n<p>Hasta el 21 de julio, no hay ninguna versi\u00f3n solucionada y The Hacker News no encontr\u00f3 ning\u00fan CVE asignado a la falla en las bases de datos p\u00fablicas. La \u00faltima versi\u00f3n, <a href=\"https:\/\/github.com\/microsoft\/azure-devops-mcp\/releases\/tag\/v2.8.0\" target=\"_blank\">v2.8.0<\/a>enviado el 24 de junio. Ning\u00fan informe p\u00fablico sit\u00faa la t\u00e9cnica en uso fuera de las propias pruebas de Manifold.<\/p>\n<p>Manifold prob\u00f3 s\u00f3lo el servidor local basado en PAT, pero le dijo a The Hacker News que la causa ra\u00edz est\u00e1 \u00aben el c\u00f3digo del servidor, no en el transporte\u00bb. Seg\u00fan esa l\u00f3gica, el alojamiento <a href=\"https:\/\/devblogs.microsoft.com\/devops\/azure-devops-remote-mcp-server-public-preview\" target=\"_blank\">servidor MCP remoto<\/a> Tambi\u00e9n estar\u00eda expuesto, pero Manifold no lo prob\u00f3 y Microsoft no lo abord\u00f3.<\/p>\n<p>El foco eleva el list\u00f3n pero no cierra la inyecci\u00f3n r\u00e1pida por s\u00ed solo, por lo que las defensas son las habituales. Otorgue al agente tokens de privilegios m\u00ednimos y af\u00ednelo al proyecto que se est\u00e1 revisando. Cargue solo los dominios MCP que la tarea necesita; el servidor local los reduce con un indicador -d.<\/p>\n<p>Mantenga las ejecuciones de canalizaciones, las lecturas de wiki y la publicaci\u00f3n de comentarios fuera de un conjunto de herramientas de revisi\u00f3n de c\u00f3digo que no los utiliza. Para verificar si la cadena ya se ejecut\u00f3, busque en los rastreos de herramientas del agente ejecuciones de canalizaciones entre proyectos, lecturas de wiki o comentarios que public\u00f3 durante una revisi\u00f3n, y escanee las descripciones de relaciones p\u00fablicas abiertas en busca de comentarios HTML ocultos. Un revisor humano que no puede ver la carga \u00fatil no es un control.<\/p>\n<p>La barandilla s\u00f3lo funciona cuando alguien recuerda agregarla. Envuelve el contenido que no es de confianza en una ruta de respuesta a la vez, por lo que la defensa es tan fuerte como la ruta menos cubierta, y una envoltura faltante en una sola funci\u00f3n es casi invisible desde el exterior. En una superficie de herramientas que sigue creciendo, brechas como \u00e9sta se abren m\u00e1s r\u00e1pido de lo que nadie piensa al auditarlas.<\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Un solo comentario invisible en una solicitud de extracci\u00f3n de Azure DevOps puede poner al propio agente de codificaci\u00f3n de IA del revisor en su contra, llev\u00e1ndolo a proyectos a los que el atacante no tiene derecho a acceder y filtrando silenciosamente lo que encuentra. La falla est\u00e1 en el oficial de Microsoft. Servidor Azure [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":1379,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[25,5],"tags":[269,3950,2776,3175,3948,263,52,1058,50,1672,265,255,3949,583],"class_list":["post-1694","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-noticias","category-trending","tag-agentes","tag-apropien","tag-azure","tag-comentarios","tag-devops","tag-falla","tag-los","tag-mcp","tag-microsoft","tag-ocultos","tag-permite","tag-publicas","tag-relaciones","tag-revision"],"_links":{"self":[{"href":"https:\/\/cybercolombia.co\/index.php\/wp-json\/wp\/v2\/posts\/1694","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cybercolombia.co\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cybercolombia.co\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cybercolombia.co\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/cybercolombia.co\/index.php\/wp-json\/wp\/v2\/comments?post=1694"}],"version-history":[{"count":0,"href":"https:\/\/cybercolombia.co\/index.php\/wp-json\/wp\/v2\/posts\/1694\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/cybercolombia.co\/index.php\/wp-json\/wp\/v2\/media\/1379"}],"wp:attachment":[{"href":"https:\/\/cybercolombia.co\/index.php\/wp-json\/wp\/v2\/media?parent=1694"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cybercolombia.co\/index.php\/wp-json\/wp\/v2\/categories?post=1694"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cybercolombia.co\/index.php\/wp-json\/wp\/v2\/tags?post=1694"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}