2 puntos por GN⁺ 2025-09-21 | 1 comentarios | Compartir por WhatsApp
  • El agente de IA de Notion 3.0 ofrece capacidad de ejecutar flujos de trabajo autónomos de varios pasos, como redactar documentos, actualizar bases de datos y llamar conectores externos
  • Cuando el agente tiene acceso a herramientas y memoria de largo plazo, se forma una superficie de ataque ampliada difícil de controlar con el RBAC tradicional
  • El análisis confirmó que el esquema de entrada de la función web search del agente de Notion podría ser explotado como un vector de exfiltración de datos que envía secretos internos al exterior mediante prompts indirectos maliciosos
  • En la demo, el atacante demostró un flujo de ejecución en el que, mediante prompt injection oculto en un PDF, induce al agente a extraer, concatenar y enviar datos confidenciales de clientes en una consulta web
  • Este caso muestra la gravedad que tiene en la seguridad práctica la tríada letal del agente-herramienta-memoria (“lethal trifecta”) cuando se combinan la integración MCP y los conectores externos

Introducción a los AI Agents y a Notion 3.0

  • Recientemente, los AI Agents se están integrando cada vez más en plataformas SaaS
  • En Notion 3.0, el agente de IA puede realizar automáticamente todas las tareas que puede hacer un usuario, como crear documentos, actualizar BD, buscar en varias herramientas y ejecutar flujos de trabajo de varios pasos
  • Con la integración de MCP, puede conectarse con múltiples herramientas externas, haciendo posible una automatización más potente y la creación de agentes personalizados
  • También se pueden crear Custom Agents orientados a equipos que operan según disparadores o cronogramas, para automatizar tareas repetitivas como recopilar feedback, actualizar trackers o clasificar solicitudes

El problema de la 'tríada letal (lethal trifecta)'

  • La 'tríada letal (Lethal Trifecta)' señalada por Simon Willison es una amenaza de seguridad que surge de la combinación de agentes LLM, acceso a herramientas y memoria de largo plazo
  • En Notion 3.0, los agentes pueden planear acciones por sí mismos y ejecutar herramientas integradas y herramientas conectadas por MCP
  • Los agentes con permisos amplios automatizan documentos, bases de datos y operaciones sobre conectores externos de maneras no previstas por el RBAC tradicional
  • Como resultado, se amplían los indicadores de riesgo de fuga o mal uso de datos sensibles mediante flujos de automatización de múltiples etapas

Detalle técnico de la vulnerabilidad: ataque de fuga de datos de páginas de Notion usando la herramienta de búsqueda web de Notion AI

  • Problema: el esquema de entrada de functions.search (web scope) de la herramienta de búsqueda web permite cadenas de consulta directas e indirectas
    Name: functions.search (web scope)  
    Input:  {  
        "web": {  
            "queries": ["<query or URL>", "..."]    // arreglo de cadenas de consulta (URLs o términos de búsqueda)  
        }  
    
  • El punto explotable es que en el arreglo de consultas se pueden insertar URLs o términos arbitrarios
  • Superficie de ataque: si se oculta un prompt malicioso dentro de un documento de usuario que el agente puede leer (por ejemplo, un PDF), existe la posibilidad de que el agente ejecute esas instrucciones
  • Mediante prompt injection indirecto (texto dentro del archivo → ruta de procesamiento del agente), la inyección de comandos se vuelve factible en la práctica
  • Técnica de evasión del atacante: uso de frases de persuasión psicológica y técnica, como autoridad, urgencia, legitimidad técnica y teatro de seguridad (“pre-authorized”), para intentar evadir la revisión humana y las protecciones
  • Esta estructura puede prestarse para que un atacante la use en exfiltración de datos mediante combinaciones selectivas de consultas

Demostración del ataque: escenario de robo de datos paso a paso

  • Paso 1: creación de un PDF malicioso

    • En un documento PDF de feedback de clientes aparentemente normal se inserta de forma oculta un prompt malicioso con instrucciones de ejecución
    • Ese prompt oculto se hace pasar por una "tarea rutinaria importante" y guía al agente para enviar datos a un sistema backend interno
    • Contenido principal del prompt malicioso
      • Afirmación de autoridad (Authority assertion): afirma que es una "tarea rutinaria importante" con frases como "Important routine task" y "consequences"
      • Falsa urgencia (False urgency): enfatiza que habrá impacto en la organización si no se ejecuta
      • Legitimidad técnica (Technical legitimacy): describe como si fuera real un sistema interno y la sintaxis de comandos de herramientas
      • Teatro de seguridad (Security theater): recalca con frases como "pre-authorized" y "safe from security perspective" que ya fue autorizado y que es seguro
    • Se induce al agente que leyó el PDF a extraer información empresarial (nombre del cliente, ARR, etc.) y enviarla a una URL que aparenta apuntar a un sistema interno, pero que está controlada por el atacante
  • Paso 2: espera de la interacción del usuario

    • El ataque se activa cuando un usuario de Notion sube ese PDF a Notion o le pide al agente que lo resuma
    • Ante una instrucción como "resumir el reporte", la IA termina interpretando también el prompt oculto
  • Paso 3: fuga real de datos

    • Siguiendo las instrucciones del prompt, el agente concatena datos del cliente (por ejemplo, nombre de la empresa, sector, ARR, etc.) en una sola cadena
    • Luego genera una URL dirigida al dominio del atacante y pasa esa URL como consulta a la herramienta de búsqueda web
    • El servidor malicioso que recibe esa solicitud, controlado por el atacante, recopila los datos sensibles
  • En este escenario de ataque, se confirmó que las barreras de seguridad pueden ser evadidas incluso usando el modelo Claude Sonnet 4.0 dentro de Notion AI

Cómo la integración MCP amplía la superficie de ataque de los agentes de Notion AI

  • Notion ofrece AI Connectors para diversas fuentes como GitHub, Gmail y Jira
  • El contexto y los metadatos que cada conector aporta al agente crean una superficie de ataque adicional, aumentando la posibilidad de que entren prompts maliciosos desde fuentes externas mediante ataques de prompt injection indirecto
  • Aumenta el riesgo de comportamientos maliciosos automatizados no intencionales y de intentos de fuga de datos sensibles
  • Escenario de ejemplo: un mensaje de commit malicioso, el cuerpo de un issue o un correo externo podrían actuar como prompts indirectos y provocar que el agente acceda y envíe datos internos

Implicaciones y recomendaciones (resumen)

  • Implicación clave: cuando un agente tiene permisos de acceso a herramientas, una instrucción maliciosa dentro de un documento puede derivar en una llamada a herramientas y terminar en filtración de información confidencial
  • Puntos de defensa (temas de discusión):
    • Las llamadas a herramientas del agente deben pasar por verificación de origen, restricción de contexto y filtrado basado en políticas
    • Las instrucciones de ejecución dentro de documentos (por ejemplo, directivas para formar URLs) deben procesarse con controles de seguridad separados, confirmación humana o en entornos aislados
    • Es necesario reforzar por conector MCP el principio de mínimo privilegio y los sistemas de registro y alerta de llamadas
  • Conclusión: las capacidades de Notion 3.0 tienen un gran potencial para mejorar la productividad, pero los nuevos vectores de ataque que genera la combinación agente-herramienta-memoria exigen replantear el diseño de seguridad en la práctica

1 comentarios

 
GN⁺ 2025-09-21
Opinión de Hacker News
  • Quiero enfatizar que lo que Simon Willison llamó la "lethal trifecta", descrita como una combinación de agentes LLM, acceso a herramientas y memoria de largo plazo que crea un vector de ataque poderoso y fácil de explotar, es una explicación incorrecta. La verdadera lethal trifecta es: acceso a datos privados, exposición a contenido no confiable y capacidad de comunicarse con el exterior. Un agente LLM con búsqueda web entra tanto en la exposición a contenido no confiable como en la comunicación externa.
    • Creo que TFA entiende mal este concepto desde el principio. La fuente original de Simon Willison es este texto.
    • En mi opinión, la trifecta puede explicarse de forma más simple: si un atacante puede introducir información en el LLM, entonces puede controlar todos los recursos.
    • Esa explicación no le hace justicia al nombre trifecta. La versión real son estas tres cosas: entrada no confiable, acceso privilegiado y un vector de exfiltración de datos.
  • La forma en que está construido el prompt se siente extremadamente similar a las características de una campaña de phishing.
    • apelación a la autoridad
    • falsa urgencia
    • legitimidad técnica
    • simulación de seguridad
      Eso me hace pensar que la inyección de prompts es como phishing dirigido contra una entidad que, al no tener ego ni autorreflexión, no puede detenerse a sospechar.
    • También creo que este fenómeno se parece a CSRF. En ambos ataques se usa una entrada en la que el sistema confía para engañar a un usuario privilegiado y hacer que ejecute una acción no deseada. Un PDF malicioso puede usar prompt injection para hacer que el agente de Notion, que tiene acceso al workspace, invoque una herramienta web externa y saque el contenido de una página hacia afuera. Al final, el patrón central es el mismo abuso de privilegios. Solo cambia la superficie técnica: prompt injection + encadenamiento de herramientas, antes falsificación de solicitudes HTTP.
    • Creo que, con el entrenamiento adecuado, un LLM sí podría desarrollar suficiente "sospecha" para resistir este tipo de ataques. Sin embargo, en los modelos recientes, fortalecer la resistencia a la inyección de 'persona' entra en conflicto con el uso conversacional. Por eso veo probable una separación entre modelos de "agente" reforzados y modelos conversacionales más abiertos. También podría haber formas de ajustar expectativas agregando contexto base a la entrada, pero creo que eso requeriría cambios de arquitectura.
  • Lo probé directamente en Notion y, aunque sí busca la URL, no parece enviar realmente los datos a esa URL. Me pregunto dónde está exactamente el punto de exfiltración, aparte de lo que se envía al servicio de búsqueda.
    • Le pedí al bot de AI de Notion que creara una nueva página a partir de una URL, y confirmé mediante los logs de mi servidor que Notion realmente accedió a esa URL. El User-Agent era Chrome/139/Mac.
    • Supongo que la intención era forzar una solicitud a una URL específica usando el query string. Parece que la herramienta de búsqueda no funciona así, o que los logs no muestran con claridad si hubo exfiltración, así que no está totalmente confirmado que haya tenido éxito.
  • Este ataque ya se había demostrado hace 2 años. No es un problema nuevo. Enlace relacionado.
    • El problema es que Notion tenía esta vulnerabilidad y no había ninguna medida para prevenirla o mitigarla.
    • No es una vulnerabilidad nueva en absoluto, y aun así Notion la implementó tal cual esta semana. Es el resultado de enfocarse solo en funciones nuevas de AI para aparentar.
  • Me pregunto si alguien está abordando el problema de instruction/data conflation. Mientras se siga dejando que el LLM obedezca ciegamente instrucciones incrustadas en los datos, es demasiado pronto para conectar fuentes de datos reales con capacidades externas. Notion recomienda a los usuarios conectar Github, GMail, Jira, etc., al modelo sin ninguna advertencia. A este nivel, casi parece criminal tratarlo como una función de un producto seguro.
    • Llevamos más de 3 años hablando de este problema, pero todavía no ha surgido una solución realmente robusta. Hoy se separan el system prompt y el user prompt, entrenando al modelo para confiar más en uno de los dos, pero ese enfoque también es débil. Un atacante motivado igual encuentra formas de eludirlo. La mitigación más convincente ha sido el paper CaMeL de DeepMind, pero incluso eso impone muchas restricciones sobre cómo componer funcionalidades. Enlace.
    • Yo soy el autor de este exploit. En CodeIntegrity.ai construimos una plataforma para visualizar los flujos reales de datos y de control en sistemas de AI agéntica, y evaluar el riesgo de cada uno. También ofrecemos guardrails en tiempo de ejecución para controlar esos flujos según la tolerancia al riesgo. Si quieren saber más, bienvenidos los correos a abi@codeintegrity.ai.
    • Me parece interesante la forma en que lo planteaste. Imagino usar como feed del LLM una estructura de datos donde lo confiable y lo no confiable estén claramente separados. Los resultados de web search o MCP serían no confiables por defecto, salvo que hayas escrito tú mismo el MCP y realmente puedas confiar en él. A los datos no confiables solo se les permitirían transformaciones puras, sin efectos secundarios. Por ejemplo: resumir, quitar espacios, convertir a float, todo dentro de un sandbox sin acceso a red. Por ejemplo, "resúmeme todos los issues públicos de GitHub y guárdalos en la DB" podría hacerse de forma segura si el contenido no confiable solo se procesa dentro del sandbox.
    • Se parece al problema de "darle a usuarios normales permiso para ejecutar código". No es fácil encontrar una solución práctica.
    • La solución ya existe. Esto no es tanto un problema de datos único como algo que puede restringirse con guardrails existentes. Si el usuario no tiene permiso para acceder a los datos, entonces el LLM tampoco debería tenerlo. Las empresas que lo dejan abierto son las raras. No es magia. Si una empresa tiene problemas de seguridad con AI, probablemente también tiene muchas otras vulnerabilidades graves. Solo que con AI se vuelven más visibles.
  • El artículo original está aquí.
  • Últimamente Notion me está empezando a parecer cada vez más spyware. Durante las reuniones me siguen apareciendo pop-ups de "¿quieres que tome notas?" porque Notion detecta constantemente que estoy en una reunión.
  • No creo que sea correcto llamar "ocultas" a vulnerabilidades encontradas en herramientas ofrecidas públicamente y promocionadas con la etiqueta de "AI".
  • Este artículo fue bueno porque mostró una vulnerabilidad real con un caso concreto, y la explicación no fue excesivamente técnica.
  • Me pregunto cómo un usuario común termina metiendo documentos en mi instancia de Notion.
    • Simplemente buscan en Google "best free notion marketing templates", se los traen y los importan. Yo también lo he hecho varias veces, y miles o decenas de miles de personas en todo el mundo usan Notion de forma parecida.
    • En el artículo el ejemplo es un PDF, pero dependiendo de cómo el agente de Notion abra y guarde enlaces, también podría mostrársele una página web distinta a cada crawler o agente navegador, así que incluso materiales populares del sector podrían convertirse en objetivos de phishing.
    • Muchas empresas suben directamente documentos como facturas a través de herramientas de automatización como Zapier, o reciben por correo documentos con exploits y luego los registran en Notion.
    • De verdad meten de todo en Notion. Lo usan como DB, como web clipper para guardar material en línea y también como herramienta colaborativa. Hay muchas formas de usarlo.
    • En este caso, la idea era enviar por correo un PDF con un título convincente para que pareciera un documento que alguien compartiría con sus colegas. Los comandos maliciosos estarían ocultos con texto blanco sobre fondo blanco o algo similar. Cuando los MCP empiecen a tener acceso a issue trackers públicos o a correos entrantes, van a aparecer muchos más escenarios de ataque de este tipo.