Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate to a2a-rs server (PR:L)
-
ExploitCraft list/history request with oversized historyLength
-
ExecutionServer returns uncapped task-history page
-
ImpactRead disclosed task data
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V14 - Data Protection Data exposure prevention
MITRE ATT&CK
2 techniques across 2 tactics: Collection, Discovery The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Requires an authenticated, network-reachable request to an a2a-rs server (versions ≤0.4.3) that exposes the task-listing/history path handled by InMemoryTaskStore, with the attacker supplying a client-controlled historyLength / page_size argument. Exploitation is LIMITED by: the need for valid low-privilege credentials to the A2A server (PR:L), deployment actually using the in-memory task store, and the server exposing the vulnerable list/history endpoint. Impact is bounded to disclosure of task-history records the pagination was meant to limit - no write, no code execution, no service disruption. |
| Impact | This is a medium-severity information-disclosure flaw (CVSS 4.0 base 5.1) and should be treated as a moderate-priority patch rather than an emergency. The supplied CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:P/VC:L/VI:N/VA:N) is internally consistent with the code evidence: the attacker reaches the server over the network (AV:N), needs low-level authenticated access to the A2A server (PR:L), and achieves only limited confidentiality impact (VC:L) with no integrity or availability effect. The patch (commit 68f1b7e / PR #122) caps the page size at MAX_PAGE_SIZE=100 and adds strict page-token/status validation, confirming the root cause is unbounded/over-large responses driven by client-controlled paging parameters (historyLength / page_size) that leak more task history than intended. No EPSS score, CISA KEV listing, or public POC was provided in the input, so exploitation probability signals are absent - this is a disclosed-and-patched issue, not a known exploited one. One signal to flag: VulDB rates UI:P (passive user interaction required) while the flaw is a direct parameter manipulation by the requester, which would normally be UI:N; this mild inconsistency slightly lowers the vendor score and should be verified, but does not change the overall medium rating. Net: real but low-urgency, driven by severity-of-impact rather than any evidence of real-world exploitation. |
| Exploit ScenarioDerived | An authenticated client of an a2a-rs-based agent server sends a task-listing or history request with an oversized historyLength / page_size value. Because the in-memory task store did not cap the page size before the fix, the server returns more task-history records than the pagination contract intended, disclosing task data to the requester. No public exploit code was identified in the provided data; exploitation requires valid (low-privilege) access to the server. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 21, 2026
In a2a-rs (a2a-server crate) through 0.4.3, the in-memory task store does not clamp client-supplied page-size and history-length parameters, so an authenticated low-privilege caller can request oversized result sets and pull task-history records beyond the pagination bounds the API is meant to enforce. Only deployments using InMemoryTaskStore that expose the task-list/history endpoints are affected, and the impact is limited to read-only disclosure of task metadata and message history - no write, no code execution and no denial of service. No public exploit code has been identified and the issue is not in CISA KEV, so this should be handled as a moderate-priority patch rather than an emergency (CVSS 4.0 base 5.1; assessed CVSS 3.1 AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N).
RemediationAI
Upstream fix available (PR/commit); released patched version not independently confirmed - apply commit 68f1b7e772ae5d6c9e581ac9b48bcddd10fe70eb (PR https://github.com/a2aproject/a2a-rs/pull/122) or move to the first release published after 0.4.3, which clamps page size to DEFAULT_PAGE_SIZE 50 / MAX_PAGE_SIZE 100 in InMemoryTaskStore and in DefaultRequestHandler::list_push_configs. Until a versioned release is available and deployed, compensating controls are: cap pageSize/historyLength at the gateway or reverse proxy in front of the a2a-server (rejects oversized requests but requires URL/body rewriting and can break legitimate large exports); restrict the task-listing and history endpoints to trusted service accounts rather than any low-privilege token (narrows exposure but reduces multi-tenant usefulness); and avoid InMemoryTaskStore in internet-facing deployments in favour of a store with its own hard limits (requires code changes and does not fix the handler-level page-size path). Note that the patch changes page-token semantics - non-numeric pageToken values and unparseable status filters now return errors (INVALID_PARAMS / HTTP 400) instead of being silently ignored - so clients that rely on that lenient behaviour must be updated before rollout. Monitor https://github.com/a2aproject/a2a-rs/ and the VulDB entry https://vuldb.com/vuln/422868 for the versioned release announcement.
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
a2a-rs is a Rust implementation of the Agent2Agent (A2A) protocol, split into a client and an a2a-server crate that exposes JSON-RPC and REST surfaces for task management, task history and push-notification configuration. The vulnerable component is InMemoryTaskStore (a2a-server/src/task_store/inmemory.rs), the default in-memory implementation of the TaskStore trait, which received a client-controlled page-size/history-length value and passed it straight through as the result limit - Some(size) if size > 0 => size as usize with a fallback of 50 - instead of bounding it. This is a CWE-200 (Exposure of Sensitive Information) pattern rather than a memory-safety bug: the application logic deliberately paginates and truncates history, and the missing upper bound lets a caller bypass that intended restriction and enumerate full task histories in a single request. The upstream fix (commit 68f1b7e772ae5d6c9e581ac9b48bcddd10fe70eb, PR #122) introduces DEFAULT_PAGE_SIZE = 50 and MAX_PAGE_SIZE = 100 constants and clamps requests with .min(MAX_PAGE_SIZE) in both the store and the DefaultRequestHandler list_push_configs path. The same commit additionally hardens adjacent parsing paths discovered during the fix - non-numeric pageToken values now return A2AError::invalid_params instead of silently defaulting to offset 0, and the REST /tasks handler now rejects an unparseable status filter with a 400 'invalid status filter' response instead of silently dropping the filter.
Know when Rust 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:P/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N
Remote authenticated request (AV:N, PR:L) directly manipulates a paging argument with no user interaction (UI:N); only limited task-history confidentiality is exposed (C:L), with no integrity or availability impact.
Primary rating from Vendor (vuldb).
CVSS VectorVendor: vuldb
DescriptionCVE.org
A vulnerability was identified in a2aproject a2a-rs up to 0.4.3. Impacted is an unknown function of the file a2a-server/src/task_store/inmemory.rs. The manipulation of the argument historyLength leads to information disclosure. The attack is possible to be carried out remotely. The identifier of the patch is 68f1b7e772ae5d6c9e581ac9b48bcddd10fe70eb. To fix this issue, it is recommended to deploy a patch.
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
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
Related Vulnerabilities in a2a-rs Information Disclosure and Race Condition
View all 2Command injection via Windows CreateProcess argument parsing affects multiple language runtimes and tooling (Node.js, PH
In the standard library in Rust before 1.52.0, a double free can occur in the Vec::from_iter function if freeing the ele
In the standard library in Rust before 1.52.0, the Zip implementation can report an incorrect size due to an integer ove
Stored cross-site scripting and open redirect in Warpgate's SSO endpoints (versions prior to 0.25.5) allow an unauthenti
library/std/src/net/parser.rs in Rust before 1.53.0 does not properly consider extraneous zero characters at the beginni
Denial of service in the Vector observability pipeline's `logstash` source (versions 0.15.0 through 0.56.x) allows a rem
The Rust Programming Language Standard Library 1.34.x before 1.34.2 contains a stabilized method which, if overridden, c
Use-after-free in librsvg during rendering of crafted SVG documents with nested XInclude directives and duplicate entity
In the standard library in Rust before 1.52.0, the Zip implementation calls __iterator_get_unchecked() more than once fo
In the standard library in Rust before 1.50.0, read_to_end() does not validate the return value from Read in an unsafe c
Cargo prior to Rust 1.26.0 may download the wrong dependency if your package.toml file uses the `package` configuration
A parser differential in the Rust `zip` crate (zip2) through 9.0.4 lets a crafted archive present different filenames to
EUVD-2026-106877
GHSA-j4c2-997p-844j
NVD
CVE.org
EPSS
VulDB
Exploit-DB