Skip to main content

a2a-rs CVE-2026-113706

| EUVDEUVD-2026-106877 MEDIUM
Information Exposure (CWE-200)
2026-10-21 cna@vuldb.com GHSA-j4c2-997p-844j
5.1
CVSS 4.0 · Vendor: vuldb
View

Attack ChainAIDerived

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

  1. Access
    Authenticate to a2a-rs server (PR:L)
  2. Exploit
    Craft list/history request with oversized historyLength
  3. Execution
    Server returns uncapped task-history page
  4. Impact
    Read 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.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
No patch listed yet 0.2% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – 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

a2a-rs 0.4.2
a2a-rs 0.4.3
a2a-rs 0.4.0
a2a-rs 0.4.1

Affected Packages

euvd a2a_rs no fix

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

Vendor (vuldb) PRIMARY 5.1 MEDIUM
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
vuln.today AI 4.3 MEDIUM

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.

3.1 AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (vuldb).

CVSS VectorVendor: vuldb

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

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

EPSS Score
0.2%
Top 85% exploitable
Prevalence
Low
early-stage Rust SDK (v0.4.3) for the A2A agent protocol, niche adoption
Data Quality
7 sources
Confidence: High

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.2%
Patch available No
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· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact· derived
Medium

Priority Score

26
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +26
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

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 2

More in Rust

View all
CVE-2024-3566 CRITICAL POC
9.8 Apr 10

Command injection via Windows CreateProcess argument parsing affects multiple language runtimes and tooling (Node.js, PH

CVE-2021-31162 CRITICAL POC
9.8 Apr 14

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

CVE-2021-28879 CRITICAL POC
9.8 Apr 11

In the standard library in Rust before 1.52.0, the Zip implementation can report an incorrect size due to an integer ove

CVE-2026-58491 CRITICAL POC
9.3 Sep 21

Stored cross-site scripting and open redirect in Warpgate's SSO endpoints (versions prior to 0.25.5) allow an unauthenti

CVE-2021-29922 CRITICAL POC
9.1 Aug 07

library/std/src/net/parser.rs in Rust before 1.53.0 does not properly consider extraneous zero characters at the beginni

CVE-2026-77620 HIGH POC
8.7 Sep 22

Denial of service in the Vector observability pipeline's `logstash` source (versions 0.15.0 through 0.56.x) allows a rem

CVE-2019-12083 HIGH POC
8.1 May 13

The Rust Programming Language Standard Library 1.34.x before 1.34.2 contains a stabilized method which, if overridden, c

CVE-2026-96889 HIGH POC
7.8 Sep 23

Use-after-free in librsvg during rendering of crafted SVG documents with nested XInclude directives and duplicate entity

CVE-2021-28878 HIGH POC
7.5 Apr 11

In the standard library in Rust before 1.52.0, the Zip implementation calls __iterator_get_unchecked() more than once fo

CVE-2021-28875 HIGH POC
7.5 Apr 11

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

CVE-2019-16760 HIGH POC
7.5 Sep 30

Cargo prior to Rust 1.26.0 may download the wrong dependency if your package.toml file uses the `package` configuration

CVE-2026-115905 CRITICAL
10.0 Oct 26

A parser differential in the Rust `zip` crate (zip2) through 9.0.4 lets a crafted archive present different filenames to

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