TOCTOU en agentes de IA: violaciones de atomicidad entre observación y acción
Un viejo fallo de los sistemas operativos reaparece en los agentes: el mundo cambia entre el momento en que el agente mira y el momento en que actúa. Investigación de 2026 lo formaliza para agentes GUI, de navegador y multiagente.
¿Qué es esto?
El Time-Of-Check to Time-Of-Use (TOCTOU, CWE-367) es una clase de error de los sistemas operativos con décadas de antigüedad: un programa comprueba una condición y luego actúa en consecuencia, pero el estado cambia en la ventana entre ambos pasos, de modo que la comprobación era válida cuando se hizo y ya no se sostiene cuando la acción se ejecuta. Tres publicaciones independientes de 2026 muestran que los agentes de IA reintroducen este fallo, y que la ventana temporal es más amplia que en el software convencional, porque el agente espera la inferencia del modelo entre percibir y actuar.
Un artículo de la UC San Diego, “Temporal UI State Inconsistency in Desktop GUI Agents” (arXiv:2604.18860, 20 de abril de 2026), lo formaliza para los agentes de uso de computadora como una Violación de atomicidad visual. Un artículo paralelo, “Atomicity for Agents” (arXiv:2603.00476, febrero de 2026), documenta el mismo fallo en agentes de navegador. Y el investigador de seguridad Joe Bollen lo describió (5 de abril de 2026) en la orquestación multiagente, aportando un nuevo requisito al estándar OWASP AISVS.
Cómo funciona
Un agente con bucle de captura-y-clic procede así: capturar la pantalla (la comprobación), enviar los píxeles a un modelo, esperar una decisión y luego ejecutar un clic en coordenadas fijas (el uso). El equipo de la UC San Diego midió la brecha entre observación y acción —la brecha observación-acción— en una media de 6,51 segundos sobre cargas reales de OSWorld. Es una ventana enorme para que un proceso local sin privilegios o un contenido web dinámico reorganice la interfaz después de que el agente haya «decidido» pero antes de que actúe.
El artículo caracteriza tres primitivas de ataque, todas demostraciones defensivas y no exploits desplegables:
# Solo conceptual — ilustrativo, no es un payload accionable.
A) Notification Overlay Hijack — superponer una capa sobre el objetivo del agente tras la captura
B) Window Focus Manipulation — desplazar el foco para que un clic de coordenadas fijas caiga en otro control
C) Web DOM Injection — mutar el DOM bajo el cursor sin huella visual
La primitiva B —el análogo de escritorio más cercano al «action rebinding» de Android— alcanza una tasa de redirección de acción del 100 % sin ninguna evidencia visual en el momento de la observación: la captura sobre la que razonó el agente parecía completamente benigna. El fallo es independiente del modelo, reproducido en los tres modelos de frontera que probaron los autores (el artículo nombra Claude Opus 4.6, GPT-4o y Qwen3.6-plus).
La variante multiagente no necesita interfaz alguna. Cuando un Agente de reembolsos y un Agente antifraude leen y escriben el mismo estado de cuenta en paralelo, un reembolso puede emitirse en los milisegundos anteriores a que aterrice un congelamiento por fraude: cada agente se comporta correctamente de forma aislada, pero el entrelazado deja salir el valor del sistema. Es el mismo peligro que el lethal trifecta, visto desde la capa de orquestación en lugar de la capa de prompt.
Por qué importa
Es una vulnerabilidad de lógica y temporización, no de contenido del prompt, así que las defensas habituales no la detectan. Los filtros de entrada, las jerarquías de instrucciones y los clasificadores de jailbreak inspeccionan texto; ninguno nota que la pantalla se movió o que otro agente escribió primero. Las pruebas secuenciales también fallan, porque el error solo existe bajo ejecución concurrente o cambios de interfaz con temporización adversa: el sistema parece funcionar cuando se comprueba el estado final y el registro de auditoría.
El radio de impacto crece con la autonomía. Un agente de uso de computadora que hace clic en «Confirmar» en el cuadro de diálogo equivocado, o un agente de facturación que paga una cuenta marcada, produce un efecto real que ninguna revisión posterior de registros revierte.
Defensas
La solución unificadora es la atomicidad: hacer inseparables la comprobación y el uso.
Para agentes GUI y de navegador, vuelva a verificar el mundo justo antes de cada acción. La Pre-execution UI State Verification (PUSV) de la UC San Diego lo hace en tres capas —SSIM de píxeles enmascarados en el objetivo del clic, diff de captura global y diff de captura de ventana— y reporta una tasa de intercepción de acción del 100 % en 180 ensayos adversos, sin falsos positivos y con menos de 0,1 s de sobrecarga. Sobre todo, ninguna capa por sí sola lo interceptó todo (la primitiva de inyección DOM sin huella eludió por completo los controles de píxeles), lo que aboga por defensa en profundidad entre el SO y el DOM en lugar de un único detector. El artículo sobre agentes de navegador propone la misma forma de mitigación: validar el estado del DOM y del diseño justo antes de la ejecución. Esto generaliza la idea de «mirar de nuevo antes de confirmar» que hay detrás de la validación de flujos de herramientas antes del commit y las guardas por captura como SnapGuard.
Para los sistemas multiagente, lleve la atomicidad a la capa de estado: transacciones de base de datos, bloqueo optimista o compare-and-swap, de modo que una comprobación de autorización y la mutación que esta condiciona no puedan dividirse por la escritura de otro agente. Son primitivas de concurrencia conocidas que se pasan por alto cuando los equipos se centran en el comportamiento del modelo en vez de en la orquestación. Mantener los agentes dentro de la Agents Rule of Two limita el daño de una carrera perdida.
Estado
| Contexto | Publicación | Fecha | Defensa propuesta |
|---|---|---|---|
| Agentes de escritorio / uso de computadora | arXiv:2604.18860 (UC San Diego) | 20 abr. 2026 | PUSV (reverificación de UI antes de ejecutar) |
| Agentes de navegador | arXiv:2603.00476 | feb. 2026 | Validación de DOM/diseño antes de ejecutar |
| Orquestación multiagente | Contribución a OWASP AISVS (J. Bollen) | 5 abr. 2026 | Atomicidad en la capa de estado (bloqueos / CAS) |
Las tres son investigaciones publicadas con mitigaciones funcionales; ninguna describe un 0-day de producto sin parchear. El TOCTOU en agentes es un riesgo de diseño que conviene anticipar, no un único CVE que esperar.