GhostSplice: el modelo se negó a robar, así que le dieron un formulario

Un servidor MCP malicioso divide una orden peligrosa en fragmentos inofensivos. El agente los une y entrega los secretos. Por qué filtrar mensajes uno por uno ya no alcanza.

19 de octubre de 20264 min de lectura

Pídele a un asistente de programación moderno que lea tu archivo .env y lo envíe a un servidor externo. Se va a negar. Fue entrenado para eso. Esa negativa funciona como un cable trampa: el modelo reconoce una petición peligrosa y se detiene.

En julio de 2026, Murali Ediga, Johnny Dao y Sudipta Chattopadhyay, del ASSET Research Group, publicaron un trabajo con un título que resume la idea mejor que cualquier explicación: «La IA se negó a robar los secretos. Así que le dimos un formulario». Lo llamaron GhostSplice.

La idea en palabras simples

Los asistentes como Cursor, VS Code con Copilot, Codex CLI o Claude Code pueden usar herramientas externas mediante MCP, el Model Context Protocol. Un servidor MCP ofrece herramientas y el asistente confía en dos partes de cada una: la descripción, que lee al conectarse, y el resultado, que recibe después de llamarla.

GhostSplice nunca hace una petición peligrosa. Reparte la intención en canales distintos:

  • La descripción de la herramienta anuncia un formulario neutro con campos como alpha, beta, gamma y delta. No menciona ningún archivo.
  • Un resultado lista qué archivos hay en el proyecto, como lo haría cualquier escáner.
  • Otro resultado pide copiar el contenido de esos archivos en los campos del formulario para una «verificación de integridad».

Ningún fragmento es peligroso por sí solo. El agente los combina en su contexto de trabajo y, para él, la tarea ya no parece un robo: parece llenar un formulario.

El resultado que debería preocuparnos

Según los autores, probaron once modelos de frontera. Pedido de forma directa, el robo fue rechazado. Fragmentado, la negativa se convirtió en cumplimiento total. The Hacker News subraya un matiz importante: el mismo modelo puede negarse en un cliente y exfiltrar en otro, según los controles de seguridad que lo rodean. No es un ranking de modelos; es un problema de arquitectura.

Los controles que juzgan cada mensaje MCP de forma aislada están mirando paquetes cuando el exploit es una conversación. — Rogue Security

Los límites del ataque, para no exagerar

Conviene ser preciso. La divulgación describe pruebas controladas en proyectos aislados con credenciales falsas, no una intrusión real reportada. Además, el ataque asume que el desarrollador ya conectó el servidor MCP del atacante y que el agente ya tiene permiso para leer los archivos robados. No es una forma de entrar a cualquier agente desde afuera.

Pero ese supuesto es menos tranquilizador de lo que parece. Instalar un servidor MCP desde un registro público se siente como instalar una extensión del navegador. Un clic, y desde ese momento el modelo lo trata como parte de sí mismo.

Por qué los filtros por mensaje no alcanzan

La mayoría de las defensas contra inyección de prompts todavía asumen que la carga maliciosa es un texto: encontrar palabras peligrosas, poner en cuarentena el contenido, bloquear la acción. GhostSplice saca la carga del texto y la pone en la relación entre textos. Es el equivalente agéntico de un ataque que solo existe cuando reensamblas los paquetes.

Qué cambiaría en un equipo hoy

  • Tratar cada servidor MCP como una dependencia de cadena de suministro: inventario, versión fijada, revisión del código y procedencia.
  • Controlar el flujo de datos, no solo los mensajes: marcar archivos sensibles y bloquear que su contenido salga por argumentos de herramientas de terceros.
  • Pedir confirmación humana cuando una herramienta externa recibe contenido leído de archivos locales.
  • Separar servidores MCP por proyecto y por nivel de confianza, en lugar de una configuración global que ve todo.
  • Asumir que la negativa del modelo es una capa de defensa, no la defensa.

Reflexión

GhostSplice me recuerda a la ingeniería social clásica. Nadie le pide al cajero «dame el dinero de la bóveda»; le piden que firme un formulario rutinario. Los modelos aprendieron a reconocer las peticiones obviamente malas. Ahora necesitamos sistemas que entiendan las intenciones que se arman por partes. Y esa comprensión no va a vivir en el modelo: va a vivir en la arquitectura que construimos a su alrededor.


Fuentes

  • ASSET Research Group — «The AI refused to steal the secrets. So we handed it a form.»: https://asset-group.github.io/disclosures/ghostsplice/
  • Repositorio PoC: https://github.com/asset-group/ghostsplice
  • The Hacker News (11 ago 2026): https://thehackernews.com/2026/08/malicious-mcp-servers-can-split.html
  • Rogue Security (13 ago 2026): https://www.rogue.security/blog/ghostsplice-cross-channel-trust-fragmentation
  • Seguridad en IA
  • MCP
  • Agentes

Recibe los nuevos artículos

Un correo cuando publico algo nuevo sobre IA aplicada, producto y sistemas en producción. Sin ruido.

Comentarios

  • Todavía no hay comentarios. Sé el primero.

¿Quieres más notas como estas?

Cada análisis se publica aquí primero: qué cambió, por qué importa y qué observar después. Sugiere un tema si hay algo que quieras que analice.