Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessGain low-privilege data-model access
-
ExploitSend DataModel.set with oversized array index
-
ExecutionTrigger unbounded array auto-vivification and clone
-
ImpactExhaust memory or hang renderer thread
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 ability to invoke DataModel.set with an attacker-influenced path (consistent with PR:L) and then supplying a numeric path segment whose array index exceeds the real array size - e.g. '/items/999999999' or '/newArray/10000000/field' - so that array auto-vivification or the array clone in set() allocates an enormous array, causing out-of-memory or a hung thread (confirmed by the fix adding a 10000-index cap). Limiting factors: it affects only the a2ui web_core v0.9 state module (data-model.ts) in versions up to 0.10.6; the impact is limited to client-side availability (VA:L - renderer memory/hang) with no confidentiality or integrity effect; and it requires low-privilege access to submit data-model paths rather than being fully unauthenticated. |
| Impact | This is a low-severity, low-priority issue, and the available signals are internally consistent rather than conflicting. The supplied CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:N/VA:L) describes a remotely reachable, low-complexity flaw that requires some privilege (PR:L) and produces only a low availability impact with no confidentiality or integrity loss - consistent with the base score of 2.1 and CWE-400 (uncontrolled resource consumption). The vuln.today decision label is 'monitor', there is no CISA KEV listing, and no EPSS score was provided in the input, so there is no signal of active or widespread exploitation. The only exploit signal is a GitHub issue reference (#2386); it is a public PoC reference and is not verified as working exploit code, which must not be conflated with active exploitation. Unusually for a VulDB-sourced entry, the actual trigger mechanism IS documented here by the vendor source diff: the fix (commit 82789191) adds a MAX_ARRAY_INDEX=10000 guard in DataModel.set, confirming the flaw is an unbounded array index that forces huge array auto-vivification/cloning and leads to memory exhaustion or a hung thread. Net: a genuine but minor client-side availability bug, correctly rated low; patch it on a normal maintenance cadence rather than as an emergency. |
| Exploit ScenarioDerived | A low-privileged actor able to submit data-model updates to an a2ui web_core renderer calls DataModel.set with a path containing an enormous numeric array index, such as '/items/999999999'. The renderer attempts to auto-vivify/expand and clone the array to that index, exhausting memory or hanging the thread and degrading availability. A public PoC reference exists (GitHub issue #2386); it is not verified as working exploit code. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 28, 2026
Unbounded array-index handling in a2ui's web_core v0.9 state module (DataModel.set, renderers/web_core/src/v0_9/state/data-model.ts) in versions up to and including 0.10.6 allows a low-privileged caller who can submit a data-model path to force array auto-vivification or an array clone at an enormous index - for example '/items/999999999' or '/newArray/10000000/field' - exhausting renderer memory or hanging the thread. The assessed impact is availability-only against the client-side renderer (CVSS 3.1 AV:N/AC:L/PR:L/UI:N/C:N/I:N/A:L; vendor scoring 2.1), with no confidentiality or integrity effect and no server-side compromise. A public PoC reference exists (issue #2386); it is not verified as working exploit code, no KEV-listed active exploitation is reported, and priority is monitor. An upstream fix is available as PR #2430 / commit 82789191ce551f4d7a095d273773fb24bd764c9d, which caps array indices at 10000.
RemediationAI
Upstream fix available (PR/commit); released patched version not independently confirmed. Apply the change in https://github.com/a2ui-project/a2ui/pull/2430 (commit 82789191ce551f4d7a095d273773fb24bd764c9d), which adds MAX_ARRAY_INDEX = 10000 to renderers/web_core/src/v0_9/state/data-model.ts, rejects any numeric path segment above that limit with an A2uiDataError across leaf, intermediate and auto-vivified paths, and swaps the spread-based array clone for val.slice() so bound-signal notifications no longer copy unbounded arrays. Rebuild and redeploy the web_core renderer after picking up the commit, and confirm the new unit tests in data-model.test.ts that assert rejection of '/items/999999999', '/items/10001' and '/newArray/10000000' while still allowing index 10000 are present and passing. No version-numbered release containing the fix is identified in the supplied data, so pinning to a specific patched tag is not possible from these sources and the commit itself must be tracked; the available sources document no separate workaround, and the closest interim control is enforcing the same 10000-index ceiling on any data-model path accepted from untrusted input before it reaches DataModel.set. Advisory detail is available at https://vuldb.com/vuln/427571 and https://github.com/a2ui-project/a2ui/issues/2386.
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
a2ui is a project whose web_core renderer keeps UI state in a TypeScript DataModel class that addresses values through slash-delimited paths. In v0.9 of that module, DataModel.set() walks the path segments and treats purely numeric segments as array indices; when a numeric segment points past the end of an existing array, or when the path is auto-vivified (a numeric next-segment causes an empty array to be created), the code performs parseInt on the segment and assigns at that offset, and bound signals are refreshed by cloning the array. Supplying an index such as 999999999 or 10000000 therefore triggers allocation of a gigantic sparse array and unbounded clone work, which is the CWE-400 (Uncontrolled Resource Consumption) root cause: no upper bound is enforced on array indices derived from attacker-influenced path input. The upstream patch introduces an exported MAX_ARRAY_INDEX constant of 10000, throws A2uiDataError for any numeric segment exceeding it - covering leaf indices, intermediate indices on existing arrays, and auto-vivification on uninitialized paths - and replaces the spread-based array clone ([...val]) with val.slice() to avoid the unbounded clone overhead on notification. The trigger is an attacker-influenced path passed to DataModel.set; the affected code is confined to the web_core v0.9 state layer, and the assessed vector (PR:L) reflects that low-privileged ability to submit such paths rather than an unauthenticated network primitive.
Know when A2Ui 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/E:P
Remotely reachable data-model input (AV:N/AC:L) but requires low-privilege ability to submit paths (PR:L); impact is only client availability via memory/thread exhaustion (A:L), no C/I.
Primary rating from Vendor (VulDB).
CVSS VectorVendor: VulDB
Lifecycle Timeline
3DescriptionCVE.org
A flaw has been found in a2ui-project a2ui up to 0.10.6. Affected by this vulnerability is the function DataModel.set of the file renderers/web_core/src/v0_9/state/data-model.ts. Executing a manipulation can lead to resource consumption. It is possible to launch the attack remotely. The exploit has been published and may be used. This patch is called 82789191ce551f4d7a095d273773fb24bd764c9d. A patch should be applied to remediate this issue.
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.
Related Vulnerabilities in a2ui-project a2ui Resource Exhaustion Vulnerabilities
View all 6Server-side request forgery in the a2ui agent SDK's FileResolver (a2ui 0.10.0 through 0.10.7) allows a remote, unauthent
Open redirect in the A2UI web rendering library (a2ui-project a2ui) through version 0.10.7 lets an attacker craft a URL
Resource exhaustion in the a2ui component framework versions 0.9 and 0.9.1 allows remote attackers with low-privilege au
Mass assignment (CWE-915) in the a2ui message-processing component lets an authenticated remote attacker inject arbitrar
Information disclosure in the a2ui agent-to-UI rendering library (versions 0.8, 0.9, and 1.0) lets a caller that can dri
Improper URL validation in A2UI's Image, Video and Audio player components (versions up to and including 0.10.4) lets an
Cross-site scripting in the a2a-chat-canvas markdown rendering component of a2ui (a2ui-project) up to version 0.10.7 all
EUVD-2026-111566
GHSA-m23g-ww56-48rc
NVD
CVE.org
EPSS
VulDB
Exploit-DB