Skip to main content

ag-ui CVE-2026-101100

| EUVDEUVD-2026-88381 MEDIUM
Incomplete Cleanup (CWE-459)
2026-09-28 VulDB GHSA-3mm7-4jh6-p5gf
5.3
CVSS 4.0 · Vendor: VulDB
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Interact with agent using shared middleware
  2. Delivery
    Start run with disallowed tool call left open
  3. Exploit
    Trigger second concurrent run that clears filter state
  4. Execution
    Blocked tool-call events bypass filter
  5. Impact
    Disallowed tool executes / integrity impact

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Incomplete cleanup
Exploitation Conditions

Requires the application to use ag-ui client's FilterToolCallsMiddleware configured with a disallowedToolCalls list as a security control, AND a deployment pattern where the same middleware instance/subscription serves multiple agent runs (concurrent, stalled, or reused runId/toolCallId). The security-relevant bypass triggers when one run's blocked tool call is left open while a second run's RUN_STARTED event clears the shared blocking state, allowing the first run's remaining disallowed tool-call events to pass. Limiting factors: the attacker needs low-privilege ability to initiate agent runs (PR:L), the filter must actually be relied on to enforce tool-call policy, and a single-run/single-subscription deployment is not affected; impact is bounded to filter bypass and mis-blocking rather than direct code execution.

Impact

This is a medium-severity issue with modest real-world risk. The vendor CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:L/VA:L, score 5.3) indicates network reachability with low attacker privileges and no required user interaction, but impact is limited to low integrity and low availability with zero confidentiality impact - despite the 'Information Disclosure' tag, no data is disclosed. There is no EPSS score, no CISA KEV listing, and no public exploit identified at time of analysis; the only public artifact is the fix PR (#2494) with regression tests that demonstrate the flaw mechanically, which is not the same as weaponized exploitation. The core weakness (CWE-459 incomplete cleanup) is that FilterToolCallsMiddleware maintains blocked tool-call state on the middleware instance rather than per-run, so a later run can clear the state that was protecting an earlier still-open run and allow previously-blocked (disallowed) tool-call events to pass the filter - a security-control bypass rather than a memory-corruption or code-execution bug. Signals are consistent: low CVSS, no exploitation evidence, and a narrow impact profile all point to a genuine LOW-to-MEDIUM operational priority, not a high-urgency issue. Note the tag says 'Information Disclosure' while the vendor vector explicitly sets VC:N - the tag conflicts with the actual impact and should be treated as integrity/availability.

Exploit ScenarioDerived

An attacker who can drive agent runs through a shared FilterToolCallsMiddleware instance starts a run whose disallowed tool call is left interrupted/stalled, then initiates a second concurrent run whose start event clears the shared blocking state; the first run's remaining blocked tool-call events (ARGS/END/RESULT) then leak through the filter that was meant to suppress them. No weaponized public exploit exists - only the vendor's regression tests demonstrate the concurrency/state-reuse behavior. Alternatively a benign but reused tool-call ID from a prior run wrongly blocks a legitimate tool call in a later run (availability side).

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Sep 28, 2026

Incomplete cleanup of per-run state in the ag-ui TypeScript client SDK's FilterToolCallsMiddleware allows disallowed tool-call events from one agent run to escape filtering - or valid events from another run to be wrongly blocked - when a single middleware instance or subscription serves more than one run. Affected deployments are those using ag-ui (ag-ui-protocol) client SDK builds up to 2026-09-07 that rely on FilterToolCallsMiddleware with a disallowedToolCalls list as a real security control, in a pattern where runs overlap, stall, or reuse runId/toolCallId values. The issue is rated CVSS 4.0 5.3 (assessed as CVSS 3.1 AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:L/A:L) - an authenticated, low-privileged party who can start agent runs is the relevant actor; impact is bounded to filter bypass and mis-blocking rather than code execution, and no public exploit identified at time of analysis. Vendor-released patch: 2026-09-08.

RemediationAI

Upgrade the ag-ui TypeScript client SDK to release 2026-09-08, which contains the per-run scoping fix from pull request 2494 (commit c346119fe870b70f5c19738ee5119f3e1456e59d); the release artifact is available at github.com/ag-ui-protocol/ag-ui/releases/tag/release/2026-09-08 and the tracking issue is github.com/ag-ui-protocol/ag-ui/issues/2443. If an immediate upgrade is not possible, the highest-value compensating control is to stop reusing middleware state: construct a fresh FilterToolCallsMiddleware instance per run or per subscription, and avoid subscribing to a single returned Observable from more than one consumer - this removes the shared-set clearing path but requires callers to guarantee run isolation, which is easy to regress in code that multiplexes agents. Additionally, do not treat FilterToolCallsMiddleware as the sole enforcement point: re-validate tool names against the allow/deny policy at the server-side tool-execution layer or before dispatching calls to downstream systems, accepting the added latency and duplicate-policy-maintenance overhead that comes with defence in depth. Applications that only ever run one agent run per middleware instance and subscription can be considered unaffected and need not be re-architected, though upgrading remains advisable.

Affected VersionsENISA

ag-ui 2026-09-07

Affects your stack

Find out whether the stacks and servers you run are on an affected version.

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

The affected component is the TypeScript client SDK middleware FilterToolCallsMiddleware in sdks/typescript/packages/client/src/middleware/filter-tool-calls.ts, part of the ag-ui protocol tooling for building agent front-ends. The middleware wraps an AbstractAgent.run() Observable and inspects streaming AG-UI events - TOOL_CALL_START, TOOL_CALL_ARGS, TOOL_CALL_END and TOOL_CALL_RESULT - suppressing the stream for tool calls whose names appear in a developer-supplied disallowedToolCalls list. The weakness maps to CWE-459 (Incomplete Cleanup): the blocking bookkeeping is held at instance/subscription scope instead of being scoped to the run, so state is never reliably torn down. When a run is interrupted before its TOOL_CALL_RESULT (leaving a blocked toolCallId cached) or when two runs share one stream, a later RUN_STARTED event reinitialises the shared set and the earlier run's remaining blocked events pass through unfiltered - and conversely a reused toolCallId can be over-blocked in a subsequent run. The upstream fix (pull request 2494, commit c346119fe870b70f5c19738ee5119f3e1456e59d) keyed the blocked-ID state per run, and the accompanying tests exercise exactly these three scenarios: blocked-ID carry-over between sequential runs, a stalled run whose state is cleared by a later run, and independent subscriptions over the same returned Observable. Because this middleware is a client-side policy enforcement point rather than a sandbox, bypassing it means the agent can emit or execute tool calls the application intended to prohibit.

Know when TypeScript gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (VulDB) PRIMARY 5.3 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:L/VA:L/SC:N/SI:N/SA:N
vuln.today AI 4.2 MEDIUM

Network-reachable with low privileges to start runs; AC:H because it needs a specific concurrent/stalled multi-run state race; integrity and availability low from filter bypass and mis-blocking, no confidentiality impact.

3.1 AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:L/A:L
4.0 AV:N/AC:H/AT:P/PR:L/UI:N/VC:N/VI:L/VA:L/SC:N/SI:N/SA:N
Red Hat 5.4 MEDIUM

Primary rating from Vendor (VulDB).

CVSS VectorVendor: VulDB

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
Low
User Interaction
None
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
Low
Vulnerable system: Availability
Low
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

A flaw has been found in ag-ui-protocol ag-ui up to 2026-09-07. This vulnerability affects the function FilterToolCallsMiddleware of the file sdks/typescript/packages/client/src/middleware/filter-tool-calls.ts of the component Middleware. Executing a manipulation can lead to incomplete cleanup. The attack may be launched remotely. Upgrading to version 2026-09-08 is able to resolve this issue. This patch is called c346119fe870b70f5c19738ee5119f3e1456e59d. It is suggested to upgrade the affected component.

Threat Intelligence Overview

EPSS Score
0.3%
Top 80% exploitable
Prevalence
Low
emerging open-source AI agent-UI protocol SDK, limited production footprint
Data Quality
6 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment Vendor GitHub VulDB

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

26
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +26
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0
CVE-2026-92812 CRITICAL POC
9.3 Sep 16

Path traversal in decap-server 3.10.0 and earlier lets unauthenticated remote attackers read, write, and delete files in

CVE-2026-46649 CRITICAL POC
9.1 Sep 21

Joplin Server instances prior to 3.7.2 expose an SSO login-code redemption endpoint (GET /api/login_with_code/:id) that

CVE-2026-63506 HIGH POC
8.8 Sep 16

Cross-tenant authorization bypass in TinaCMS self-hosted deployments allows any holder of a legitimate TinaCloud account

CVE-2026-63116 HIGH POC
8.8 Sep 21

Authenticated clients on deepstream.io 10.1.0 can bypass record-write authorization and modify arbitrary protected recor

CVE-2026-102911 HIGH POC
8.6 Sep 30

OS command injection in zosmaai's pi-llm-wiki through 0.11.7 lets an attacker who can invoke the wiki_capture_source MCP

CVE-2026-102281 HIGH POC
7.5 Sep 28

A remote, unauthenticated denial-of-service condition in the NestJS (Nest) microservices framework lets an attacker cras

CVE-2026-63627 MEDIUM POC
6.9 Sep 22

Fee-sponsoring servers built on mppx before 0.8.2 can be induced by any client with access to the sponsorship endpoint t

CVE-2026-57138 CRITICAL
9.9 Sep 15

Code escaping sandbox in the PraisonAI npm package's built-in codeMode tool (praisonai 1.4.0 through 1.7.1) lets anyone

CVE-2026-54460 CRITICAL
9.8 Sep 17

Unauthenticated passkey enrollment in OpenReception appointment-booking software prior to 1.1.1 lets remote attackers in

CVE-2026-51996 CRITICAL
9.8 Sep 24

A credential-isolation flaw in geelen mcp-remote 0.1.16 through 0.1.38 allows a remote attacker who controls or can pred

CVE-2026-88404 CRITICAL
9.8 Sep 21

Remote code execution affects Univer v1.0.0-alpha.2 through its Uniscript feature: the UniscriptExecutionService.execute

CVE-2026-86059 CRITICAL
9.6 Sep 22

Dokploy instances running versions prior to 0.29.13 disclose stored Git provider secrets - GitHub App private keys, OAut

Vendor StatusVendor

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy