sistema: OPERATIVO
← volver a todos los hacks
AGENTS MEDIUM NEW

Ataques de agotamiento de tokens: denegación de servicio económica vía cadenas de herramientas de agentes

Dos artículos de 2026 muestran que una herramienta o skill maliciosa puede arrastrar a un agente LLM a largos bucles de llamadas a herramientas, multiplicando el coste en tokens de 6 a 658× mientras devuelve la respuesta correcta — una variante sigilosa del Unbounded Consumption de OWASP.

2026-06-01 // 7 min affects: gemini-2.5-pro

¿Qué es esto?

La mayoría de los ataques contra agentes buscan que hagan algo incorrecto: filtrar datos, ejecutar un comando, eludir una barrera de seguridad. Otra clase apunta a la factura en lugar del comportamiento: el agente completa la tarea correctamente, pero el coste se dispara. Como el consumo de tokens se traduce directamente en dinero, latencia y memoria de GPU, un atacante capaz de inflar la cantidad de tokens que un agente genera y vuelve a ingerir dispone de una denegación de servicio discreta que preserva la corrección del resultado.

Dos artículos de 2026 ponen cifras al fenómeno. Beyond Max Tokens: Stealthy Resource Amplification via Tool Calling Chains in LLM Agents (Zhou et al.; arXiv 2601.10955, enero de 2026) presenta el bucle multironda agente–herramienta como una superficie de denegación de servicio económica en gran medida inexplorada y reporta una amplificación de 65 a 658× en un simulador restringido. Clawdrain (Ben Dong, Hui Feng, Qian Wang, UC Merced; arXiv 2603.00902, 1 de marzo de 2026) reproduce la idea en un despliegue cercano a producción —el asistente autoalojado OpenClaw (v2026.2.9) respaldado por Gemini 2.5 Pro— y mide una amplificación más modesta pero real de 6 a 9× sobre una sola consulta. Ambos son instancias de lo que OWASP cataloga como LLM10:2025 Unbounded Consumption, y en concreto de su variante Denial of Wallet.

Cómo funciona

La palanca es el propio bucle de llamadas a herramientas del agente. Un agente con herramientas razona, llama a una herramienta, lee el resultado, lo añade a la conversación y repite, reenviando al modelo en cada ronda la transcripción que no para de crecer. Una herramienta o skill instalada maliciosa explota este funcionamiento alargando cada ronda y forzando más rondas, sin romper nunca la tarea.

Bucle benigno                    Bucle de agotamiento (correccion preservada)
-----------------------------    -----------------------------------
peticion -> llamada herram. ->   peticion -> llamada herram. -> la
resultado corto -> respuesta     herramienta responde "paso 1 de N,
(1 ronda)                        reenvie todos los datos" -> el agente
                                 regenera una carga verbosa
                                 -> ... repite N veces -> respuesta
                                 (coste = O(carga x N) + historial)

En Clawdrain, el detonante reside en un SKILL.md inyectado —la descripción markdown que un skill expone al modelo— que ordena al agente ejecutar un «handshake» de verificación de varios pasos antes de recibir los datos. El script asociado devuelve señales de continuar / reintentar / terminado, de modo que el agente entra en bucle, regenerando una carga larga en cada ronda, mientras un pretexto plausible («el proveedor de datos lo exige») le impide cuestionar el protocolo. No hace falta ninguna cadena de explotación; la instrucción dañina es texto corriente que el framework inyecta al nivel de privilegio del prompt del sistema.

El artículo también revela tres realidades de despliegue que un simulador ignora. Primero, el fracaso puede costar más que el éxito: cuando el protocolo se configuraba de forma demasiado agresiva, el agente lo abandonaba e iniciaba una cascada de recuperación —reintentos, búsqueda web, terminación de procesos— que quemaba más tokens que una ejecución limpia. Segundo, los agentes capaces a veces sortean el agotamiento escribiendo un script para el trabajo repetitivo (en una ejecución el modelo generó la secuencia con un comando Python de una línea en lugar de token a token), lo que atenúa el ataque pero abre nuevos canales de flujo de control. Tercero, el sigilo depende de la interfaz: un chat muestra cada llamada, una terminal narrada oculta las trazas en bruto, y una tarea programada (cron/heartbeat) se ejecuta sin ninguna salida visible para el usuario.

Por qué importa

El coste en tokens es ya un riesgo operativo de primer orden. Los mismos artículos señalan despliegues reales donde automatizaciones mal configuradas (no maliciosas) quemaron millones de tokens de un día para otro —Clawdrain cita un incidente de OpenClaw de 5,7 millones de tokens consumidos en una noche— de modo que un agotamiento deliberado se esconde cómodamente entre el ruido normal. La superficie de ataque es amplia: cualquier agente que instale skills de terceros, siga las salidas de herramientas como instrucciones o se ejecute sin supervisión según una planificación está expuesto, y los puntos de entrada reproducen la cadena de suministro clásica (un skill envenenado en un registro, una dependencia comprometida o una inyección de prompt que lo induzca a autoinstalarse). Sobre todo, esto elude las defensas calibradas para el contenido: la salida es correcta, no se infringe ninguna política y un límite de tokens por llamada no ve un bucle que se mantiene bajo el límite en cada ronda.

Defensas

Las recomendaciones de OWASP sobre Unbounded Consumption son la base adecuada; los bucles de herramientas de los agentes exigen algunos añadidos:

  1. Presupueste la tarea completa, no la llamada. Los límites de tokens por petición pasan por alto los agotamientos multironda. Imponga un techo acumulado de tokens/coste y un número máximo de llamadas a herramientas por tarea o sesión, y aborte en cuanto se supere uno de ellos.
  2. Trate las descripciones de skills y las salidas de herramientas como datos no confiables, no como instrucciones. No permita que un SKILL.md o una respuesta de herramienta inyecte flujo de control al privilegio del prompt del sistema. Mantenga las instrucciones de la plataforma en una capa separada y de mayor confianza (véase jerarquía de instrucciones).
  3. Vigile los ratios de amplificación. Registre los tokens por tarea y las llamadas a herramientas por tarea, y alerte sobre los valores atípicos frente a una referencia benigna; una consulta que normalmente cuesta ~30 k tokens y que de repente cuesta 200 k es la señal.
  4. Limite con más dureza la ejecución sin supervisión. Las ejecuciones cron/heartbeat son el caso invisible: otorgue a las tareas programadas los presupuestos, límites de tasa y tiempos de espera más estrictos, y exija revisión humana de cualquier actividad de fondo costosa.
  5. Audite los skills de terceros como una cadena de suministro. Revise o aísle los skills instalados, fije las versiones y vigile las documentaciones sobredimensionadas, que inflan el coste de entrada en cada ronda, se llame o no al skill.
  6. Falle de forma cerrada en cuanto al coste. Diseñe una degradación elegante: cuando una herramienta funcione mal, limite los reintentos y los bucles de recuperación para que una ruta de fallo no pueda gastar más que la ruta de éxito.

Situación

ElementoReferenciaFechaNotas
Beyond Max Tokens (amplificación por cadena de herramientas)arXiv 2601.10955 (Zhou et al.)2026-01Amplificación de 65 a 658× en simulador restringido; define la superficie de denegación de servicio económica
Clawdrain (reproducción cercana a producción)arXiv 2603.00902 (UC Merced)2026-03-016 a 9× en OpenClaw v2026.2.9 + Gemini 2.5 Pro; hallazgos sobre fallo costoso, composición de herramientas y sigilo según la interfaz
OWASP LLM10:2025 Unbounded Consumptiongenai.owasp.org2025 (vigente)Enmarca el Denial of Wallet; se corresponde con MITRE ATLAS AML.T0034 Cost Harvesting y AML.T0029 Denial of ML Service

La conclusión: a medida que los agentes sustituyen las consultas únicas por largas cadenas de llamadas a herramientas, el coste de una tarea pasa a formar parte de su modelo de amenazas. Un ataque de agotamiento nunca activa un filtro de contenido —simplemente hace correr el contador— de modo que la defensa reside en los presupuestos, la supervisión y las fronteras de confianza, no en la inspección de salidas.

Sources