{"id":706,"date":"2026-03-28T06:00:00","date_gmt":"2026-03-28T05:00:00","guid":{"rendered":"https:\/\/rosmarops.com\/?p=706"},"modified":"2026-10-25T10:18:11","modified_gmt":"2026-10-25T09:18:11","slug":"cuando-el-protocolo-canonico-ya-viene-roto","status":"publish","type":"post","link":"https:\/\/rosmarops.com\/es\/blog\/cuando-el-protocolo-canonico-ya-viene-roto\/","title":{"rendered":"Cuando el protocolo can\u00f3nico ya viene roto"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Hay una forma de evaluar la madurez de seguridad de un ecosistema: mirar qu\u00e9 tan bien protegida est\u00e1 la implementaci\u00f3n de referencia. No el c\u00f3digo de un tercero, no el proyecto experimental de un developer entusiasta que public\u00f3 algo un s\u00e1bado por la tarde. El c\u00f3digo oficial. El que mantiene la organizaci\u00f3n que dise\u00f1\u00f3 el protocolo. El que aparece primero en la documentaci\u00f3n y que los dem\u00e1s, inevitablemente, van a copiar.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En el ecosistema MCP de Anthropic, la respuesta lleg\u00f3 en forma de CVE.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Entre mediados de 2024 y principios de 2025, investigadores de Cyata descubrieron vulnerabilidades cr\u00edticas en mcp-server-git, el servidor Git MCP oficial mantenido por Anthropic. Las fallas eran explotables mediante inyecci\u00f3n de prompt con argumentos controlados por atacantes. Una de ellas deriv\u00f3 en <a href=\"https:\/\/claude.ai\/chat\/URL\">CVE-2025-49596<\/a>, una vulnerabilidad de ejecuci\u00f3n remota de c\u00f3digo con puntuaci\u00f3n CVSS de 9.4, uno de los primeros RCE cr\u00edticos documentados en el ecosistema MCP.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Que haya bugs no es la noticia. Software es software, y el software tiene errores. Lo significativo es d\u00f3nde aparecieron, y lo que eso dice sobre c\u00f3mo se est\u00e1 construyendo esta capa de infraestructura.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>El c\u00f3digo de ejemplo se convierte en infraestructura cr\u00edtica<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/claude.ai\/chat\/URL\">MCP \u2014Model Context Protocol\u2014<\/a> es el intento de Anthropic de resolver un problema genuino: c\u00f3mo permitir que los LLMs interact\u00faen con sistemas externos de forma estructurada. Introducido en noviembre de 2024, define un protocolo donde servidores ligeros exponen funcionalidades \u2014sistemas de archivos, APIs, bases de datos, utilidades de desarrollo como Git\u2014 y los modelos las consumen a trav\u00e9s de clientes. La idea tiene sentido. Un est\u00e1ndar abierto, modular, que evita que cada integraci\u00f3n sea una soluci\u00f3n ad hoc. Sobre el papel, razonable.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">El problema es la velocidad. La adopci\u00f3n de MCP ha sido extraordinariamente r\u00e1pida, y esa velocidad ha tenido un coste concreto: c\u00f3digo concebido como referencia t\u00e9cnica se ha convertido en infraestructura de producci\u00f3n antes de haber pasado por el ciclo de endurecimiento que ese rol requiere. Los desarrolladores lo han tomado como base, lo han desplegado, lo han integrado en productos. Y el modelo de confianza impl\u00edcito \u2014si lo mantiene Anthropic, algo de rigor tendr\u00e1\u2014 ha funcionado como una garant\u00eda que nadie hab\u00eda otorgado expl\u00edcitamente.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Seg\u00fan <a href=\"https:\/\/claude.ai\/chat\/URL\">la investigaci\u00f3n de Cyata<\/a>, mcp-server-git no valida adecuadamente las rutas de repositorio ni sanitiza los argumentos pasados a comandos Git. El resultado es que un atacante puede dirigir al servidor a operar en cualquier directorio del sistema, no solo en el repositorio definido en su configuraci\u00f3n. El diagn\u00f3stico sobre el patr\u00f3n m\u00e1s amplio es directo: en la prisa por llevar estas herramientas al mercado \u2014y en parte por miedo a restringir demasiado a los usuarios\u2014 las soluciones de IA conectadas han llegado a producci\u00f3n con frecuencia sin las barreras de protecci\u00f3n necesarias.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Lo que convierte esto en algo m\u00e1s que un incidente de seguridad puntual es la observaci\u00f3n de Shahar Tal, CEO de Cyata: \u00abEste es el servidor Git MCP can\u00f3nico, el que se espera que los desarrolladores copien. Si las barreras de seguridad se rompen incluso en la implementaci\u00f3n de referencia, es una se\u00f1al de que todo el ecosistema MCP necesita un escrutinio m\u00e1s profundo.\u00bb No est\u00e1 hablando de un proyecto mal mantenido. Est\u00e1 hablando del est\u00e1ndar.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>El fallo que no es un bug<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Pero incluso con c\u00f3digo perfectamente validado y bien sanitizado, quedar\u00eda el problema de fondo. Y este es m\u00e1s dif\u00edcil de parchear porque no est\u00e1 en el c\u00f3digo. Est\u00e1 en la arquitectura.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La caracter\u00edstica fundamental de los modelos de lenguaje es tambi\u00e9n su principal superficie de ataque: usan el mismo canal para recibir comandos y para procesar los datos sobre los que operan. Un LLM distingue entre \u00abinstrucci\u00f3n\u00bb y \u00abcontenido a analizar\u00bb \u00fanicamente por contexto. No hay separaci\u00f3n arquitect\u00f3nica entre los dos canales. No hay equivalente al ring 0 de los procesadores, ni a la separaci\u00f3n entre espacio de usuario y espacio de kernel. Todo llega como texto. Todo se procesa como texto.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Esto tiene una consecuencia directa que <a href=\"https:\/\/claude.ai\/chat\/URL\">los propios investigadores formulan sin ambig\u00fcedades<\/a>: aunque se pueden dificultar las inyecciones y a\u00f1adir defensas en capas, es imposible resolver el problema completamente dada la arquitectura LLM actual. MCP naci\u00f3, por tanto, con una contradicci\u00f3n interna que ninguna actualizaci\u00f3n de seguridad va a eliminar: es infraestructura dise\u00f1ada para ejecutar acciones reales sobre sistemas reales, construida sobre un sustrato que no puede distinguir de manera confiable entre instrucci\u00f3n leg\u00edtima y manipulaci\u00f3n adversarial.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">El vector de ataque resultante es casi elegante en su simplicidad. No hacen falta credenciales robadas. No hace falta acceso directo a la red. No hace falta interacci\u00f3n con el sistema objetivo. Basta con que el modelo lea contenido controlado por el atacante: un README malicioso, una descripci\u00f3n de issue envenenada, una p\u00e1gina web comprometida. El contenido hace el trabajo. La superficie de ataque no es el servidor, ni la red, ni el sistema operativo. La superficie de ataque es cualquier texto que el modelo pueda leer.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Esto es lo que hace que las vulnerabilidades en mcp-server-git sean interesantes m\u00e1s all\u00e1 de su puntuaci\u00f3n CVSS. Demuestran, en condiciones reales y en c\u00f3digo de producci\u00f3n, que la combinaci\u00f3n de MCP con LLMs crea una cadena de explotaci\u00f3n que no tiene un buen equivalente en la seguridad tradicional. Los modelos mentales heredados \u2014validar entradas, escapar par\u00e1metros, aplicar principio de m\u00ednimo privilegio\u2014 son necesarios pero insuficientes.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>La contradicci\u00f3n que la industria prefiere no nombrar<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">El sector est\u00e1 apostando con fuerza por sistemas ag\u00e9nticos: modelos que no solo responden preguntas sino que ejecutan acciones en sistemas reales. Gestionan calendarios, escriben c\u00f3digo, hacen commits, env\u00edan emails, interact\u00faan con APIs. La promesa es automatizaci\u00f3n con criterio, no solo automatizaci\u00f3n. Y MCP es la infraestructura sobre la que se construye buena parte de esa promesa.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">El problema es que esa apuesta se est\u00e1 haciendo antes de haber resuelto el problema de fondo. Como se\u00f1al\u00f3 Tal en <a href=\"https:\/\/claude.ai\/chat\/URL\">su an\u00e1lisis<\/a>, \u00abesta investigaci\u00f3n muestra c\u00f3mo las suposiciones tradicionales sobre los l\u00edmites de confianza colapsan una vez que los LLMs se colocan en el bucle de decisi\u00f3n.\u00bb No es hip\u00e9rbole. Es una descripci\u00f3n precisa de lo que ocurre cuando introduces en una cadena de decisi\u00f3n un componente que puede ser manipulado a trav\u00e9s de su interfaz de uso normal.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Las mitigaciones recomendadas existen y tienen sentido: privilegio m\u00ednimo, validaci\u00f3n de salida, sandboxing, confirmaci\u00f3n humana para acciones de alto riesgo. Todas razonables. Ninguna resuelve el problema de ra\u00edz, y la \u00faltima introduce una contradicci\u00f3n que pocas organizaciones se detienen a nombrar en voz alta: si cada acci\u00f3n relevante requiere confirmaci\u00f3n humana, la autonom\u00eda del agente se vac\u00eda. Te queda un asistente que propone y un humano que aprueba, que es b\u00e1sicamente el flujo de trabajo que ya exist\u00eda antes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La imagen que mejor captura el problema es esta: construir un sistema de control de acceso donde el guardia puede ser convencido mediante conversaci\u00f3n de entregar las llaves. Puedes entrenar mejor al guardia. Puedes darle protocolos m\u00e1s estrictos. Puedes a\u00f1adir un segundo guardia. Pero el problema estructural es que es un guardia que entiende lenguaje natural y puede ser persuadido. Eso no se resuelve con m\u00e1s entrenamiento. Se resuelve cambiando la arquitectura, y eso no est\u00e1 disponible todav\u00eda.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Lo que estas vulnerabilidades revelan no es incompetencia de Anthropic. Es algo m\u00e1s inc\u00f3modo: que estamos desplegando sistemas ag\u00e9nticos en producci\u00f3n antes de haber resuelto c\u00f3mo hacer que un LLM distinga de manera confiable entre \u00abel usuario me pide hacer X\u00bb y \u00abalguien inyect\u00f3 texto que me hace creer que el usuario me pide hacer X\u00bb. En arquitecturas tradicionales, esa distinci\u00f3n es trivial. En LLMs actuales, sigue siendo un problema abierto, con papers activos, sin soluci\u00f3n consensuada, y sin horizonte claro de cu\u00e1ndo la habr\u00e1.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Mientras no se resuelva, cada nuevo servidor MCP que se despliega, cada nueva integraci\u00f3n ag\u00e9ntica que se lanza, hereda ese problema. No como deuda t\u00e9cnica futura. Como condici\u00f3n de operaci\u00f3n presente. Y la mayor\u00eda de los equipos que los est\u00e1n desplegando probablemente no lo saben, porque la documentaci\u00f3n no lo dice con esa claridad, y el c\u00f3digo de referencia, como hemos visto, tampoco lo resuelve.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Fuentes: <a href=\"https:\/\/claude.ai\/chat\/URL\">Cyata Research<\/a> \u00b7 <a href=\"https:\/\/claude.ai\/chat\/URL\">CVE-2025-49596<\/a> \u00b7 <a href=\"https:\/\/claude.ai\/chat\/URL\">Documentaci\u00f3n MCP de Anthropic<\/a><\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hay una forma de evaluar la madurez de seguridad de un ecosistema: mirar qu\u00e9 tan bien protegida est\u00e1 la implementaci\u00f3n de referencia. No el c\u00f3digo de un tercero, no el proyecto experimental de un developer entusiasta que public\u00f3 algo un s\u00e1bado por la tarde. El c\u00f3digo oficial. El que mantiene la organizaci\u00f3n que dise\u00f1\u00f3 el &#8230; <a title=\"Cuando el protocolo can\u00f3nico ya viene roto\" class=\"read-more\" href=\"https:\/\/rosmarops.com\/es\/blog\/cuando-el-protocolo-canonico-ya-viene-roto\/\" aria-label=\"Leer m\u00e1s sobre Cuando el protocolo can\u00f3nico ya viene roto\">Leer m\u00e1s<\/a><\/p>\n","protected":false},"author":1,"featured_media":708,"comment_status":"closed","ping_status":"closed","sticky":true,"template":"","format":"standard","meta":{"footnotes":""},"categories":[21],"tags":[124,201],"class_list":["post-706","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ciberseguridad-en-ia","tag-ciberseguridadia","tag-llm-security"],"_links":{"self":[{"href":"https:\/\/rosmarops.com\/es\/wp-json\/wp\/v2\/posts\/706","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/rosmarops.com\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/rosmarops.com\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/rosmarops.com\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/rosmarops.com\/es\/wp-json\/wp\/v2\/comments?post=706"}],"version-history":[{"count":1,"href":"https:\/\/rosmarops.com\/es\/wp-json\/wp\/v2\/posts\/706\/revisions"}],"predecessor-version":[{"id":1029,"href":"https:\/\/rosmarops.com\/es\/wp-json\/wp\/v2\/posts\/706\/revisions\/1029"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/rosmarops.com\/es\/wp-json\/wp\/v2\/media\/708"}],"wp:attachment":[{"href":"https:\/\/rosmarops.com\/es\/wp-json\/wp\/v2\/media?parent=706"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/rosmarops.com\/es\/wp-json\/wp\/v2\/categories?post=706"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/rosmarops.com\/es\/wp-json\/wp\/v2\/tags?post=706"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}