Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessLure client to malicious SSE endpoint
-
ExploitRespond with unterminated/oversized SSE stream
-
ExecutionClient buffer grows without bound
-
ImpactMemory exhaustion crashes client process
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V2 - Validation and Business Logic Resource consumption limits
MITRE ATT&CK
1 technique across 1 tactic: Impact The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires the AG-UI Go community SSE client (sdks/community/go/pkg/client/sse/client.go) to establish an SSE connection to an endpoint the attacker controls or can MITM; the attacker then sends a stream that never emits a line-terminating newline, or an oversized single frame, so the client's ReadBytes buffer grows unbounded. Impact is limited to availability (memory exhaustion of the client process) - no data disclosure or modification. Key limiting factor: the victim application must connect to the hostile/compromised endpoint, so risk is concentrated in deployments where the agent backend or transport is untrusted; before the fix there was no configurable frame/line cap. |
| Impact | This is a moderate, availability-only issue whose real-world priority is low. The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:N/VA:L) yields 5.3 and correctly reflects a non-catastrophic bug: no confidentiality or integrity impact and only partial availability (VA:L). The root cause, confirmed by the PR #2700 diff, is unbounded buffer growth in the Go SSE client's readStream - bufio.Reader.ReadBytes grows its buffer indefinitely when a peer sends data but never a newline delimiter, exhausting client memory (CWE-400). There is no EPSS score, no CISA KEV listing, and no public exploit code, so this is not under active exploitation. Note a signal to verify: VulDB assigned PR:L, but the actual actor is a malicious or compromised SSE endpoint (or a MITM on the stream) that the Go client connects to - that server needs no credentials on the victim, which argues for PR:N; conversely the victim must initiate a connection to the hostile endpoint, a real limiting precondition not captured in raw CVSS. Also note the description says the fix PR 'awaits acceptance,' which conflicts with the 'Patch: Available from vendor' metadata - the fix may not yet be merged/released. Overall: a legitimate resource-exhaustion hardening fix in a niche library, not an urgent threat. |
| Exploit ScenarioDerived | A Go application embeds the AG-UI community SSE client and connects to an agent backend endpoint. An attacker who controls or MITMs that endpoint returns a Server-Sent Events response that streams bytes without ever sending a line terminator (or an oversized single frame); the client's reader accumulates the data indefinitely, driving memory growth until the client process is exhausted or killed. No public exploit code exists, but the condition is trivial to reproduce (AC:L) and the fix's own test harness demonstrates it with a 'holdingReader' that sends data then blocks. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 16, 2026
Memory exhaustion in the AG-UI Go community SDK's SSE client allows a remote attacker who controls or can intercept an SSE endpoint to drive the client process out of memory by sending a stream that never terminates a line, or an oversized single frame. The affected component is sdks/community/go/pkg/client/sse/client.go in ag-ui, and impact is availability-only with no data disclosure or modification, consistent with the assessed CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L. No public exploit was identified at time of analysis; an upstream fix exists as pull request #2700 but a released patched version is not independently confirmed.
RemediationAI
Apply the upstream fix from PR https://github.com/ag-ui-protocol/ag-ui/pull/2700 once accepted or released; because the pull request awaits acceptance, this is currently an upstream fix available as a PR/commit and a released patched version is not independently confirmed. If building from source, incorporate the changes that add DefaultMaxFrameBytes at 8 MiB, readLine limits, and frame-size termination. Until patched, avoid connecting the AG-UI Go SSE client to untrusted or attacker-influenceable endpoints, and place outbound SSE traffic behind a proxy that enforces maximum response body size and idle or incomplete-line timeouts; trade-offs are that size limits can break legitimate large SSE payloads and timeouts can terminate long-lived streams. Restrict egress to trusted agent backends and monitor client memory for unbounded growth; after a patched release is available, reduce Config.MaxFrameBytes for use cases with smaller legitimate frames. Additional references: https://github.com/ag-ui-protocol/ag-ui/issues/2438 and https://vuldb.com/vuln/405447.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
This is CWE-400 uncontrolled resource consumption in the AG-UI Go SDK's server-sent events client. The Go client uses bufio.Reader.ReadBytes with a newline delimiter to read SSE lines; because ReadBytes grows its internal buffer until it finds the delimiter, a malicious or compromised SSE server can keep the connection open without ever sending a newline, causing unbounded memory growth. The same resource-exhaustion class applies to an oversized frame accumulated before the blank-line dispatch. The CPE cpe:2.3:a:ag-ui-protocol:ag-ui:*:*:*:*:*:*:*:* covers ag-ui, and the vulnerable code is specifically the community Go SSE client. The upstream patch adds DefaultMaxFrameBytes at 8 MiB, a readLine helper using ReadSlice with byte limits, and frame-size checks that terminate the stream when a line or frame exceeds the cap.
Know when Go 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
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N
Malicious/MITM'd SSE server needs no target credentials (PR:N) and sending an unterminated stream is trivial (AC:L); impact is availability-only and partial (A:L), no C/I.
Primary rating from Vendor (VulDB).
CVSS VectorVendor: VulDB
DescriptionCVE.org
A security vulnerability has been detected in ag-ui-protocol ag-ui 1.0. This affects an unknown function of the file sdks/community/go/pkg/client/sse/client.go of the component SSE Client. Such manipulation leads to resource consumption. The attack can be executed remotely. The pull request to fix this issue awaits acceptance.
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.
Denial of service against HTTP/2 server implementations allows remote unauthenticated attackers to exhaust server resour
The net/http package in Go through 1.6 does not attempt to address RFC 3875 section 4.1.18 namespace conflicts and there
Critical certificate validation bypass in Go crypto/tls during session resumption. If ClientCAs or RootCAs fields are mu
net/url in Go before 1.11.13 and 1.12.x before 1.12.8 mishandles malformed hosts in URLs, leading to an authorization by
Casdoor through 4.4.0 exposes its instance-wide built-in JWT signing private key unmasked through the /api/get-certs and
Host header injection in Nezha 2.2.3's OAuth2 redirect endpoint (/api/v1/oauth2/{provider}) allows an unauthenticated re
Session cross-wiring in SUSE NeuVector before 5.6.1 allows an unauthenticated remote attacker to obtain another user's a
Unauthenticated path traversal in Uber Kraken through 0.1.29 allows remote attackers to read files outside the configure
The "go get" implementation in Go 1.9.4, when the -insecure command-line option is used, does not validate the import pa
Denial of service in Temporal Server allows an authenticated caller holding at least namespace read permission to crash
Account takeover in Klever-Go's KleverUpdateAccountPermission built-in (all versions prior to 1.7.20) allows an attacker
Maliciously crafted on-chain account names processed by Klever-Go prior to 1.7.20 are spliced into Elasticsearch _bulk r
EUVD-2026-80725
GHSA-mfh9-w5jm-cv27
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB