CVE-2026-82579

AshAi tool loop never terminates when all tool calls are filtered out, enabling denial of service

State
Published
Severity
6.0 Medium
Published
Aug 31, 2026
Updated
Aug 31, 2026
Reserved
Aug 30, 2026

Read the record on cve.org

Description

Loop with Unreachable Exit Condition (Infinite Loop) vulnerability in ash-project ash_ai allows an attacker who can influence a model's output to hang the tool loop and drive unbounded, repeated model requests.

AshAi.ToolLoop classifies a model response of :tool_calls, then filters the calls through normalize_tool_calls/2 and unprocessed_tool_calls/2. Both can empty the list: a call missing a valid name, or one reusing a tool_call_id that already has a result in history, is dropped. With an empty list the loop appended nothing and recursed with a byte-identical message list, so the conversation never advanced and the same request was re-sent every iteration. Under the supported max_iterations: :infinity this never terminated; otherwise it exhausted the full budget. Prompt-injected content can make the model re-emit a spent tool_call_id. The fix treats an empty post-filter list as terminal.

This issue affects ash_ai: from 0.6.0 before 1.0.0.

Scores

CVSSScoreVectorSource
4.06.0 MediumCVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:NEEF

Weaknesses

  • CWE-835 Loop with Unreachable Exit Condition ('Infinite Loop')

Affected Products

ProductVersions
ash_aiash-project
  • 0.6.0 to before 1.0.0Affected
ash_aiash-project
  • bc2122f78fca6c11d8ec2b9ac53148ec17476460 to before 53325fdab90afab628c6a53232ef2a9001580bd9Affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.