Skip to main content

a2a-rs EUVDEUVD-2026-106865

| CVE-2026-113704 MEDIUM
Server-Side Request Forgery (SSRF) (CWE-918)
2026-10-20 cna@vuldb.com GHSA-cwqm-f4mw-5mhx
6.9
CVSS 4.0 · Vendor: vuldb
View

Attack ChainAIDerived

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

  1. Access
    Submit crafted TaskPushNotificationConfig to server
  2. Delivery
    Set push webhook URL to 169.254.169.254 or internal host
  3. Exploit
    Unvalidated HttpPushSender dispatches outbound request
  4. Execution
    Server reaches cloud-metadata/internal service
  5. Impact
    Probe internal network or elicit limited data leakage

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V4 - API and Web Service URL allowlisting, SSRF prevention
MITRE ATT&CK

2 techniques across 2 tactics: Initial Access, Credential Access

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Requires the server to have the push-notification feature enabled (an HttpPushSender configured via with_push_notifications); on affected versions ≤0.4.3 this sender performed NO URL validation, so any client able to submit a TaskPushNotificationConfig can set an arbitrary webhook URL. Concrete abuse targets confirmed by the patch: loopback (127.0.0.1/::1/localhost), RFC1918/ULA private ranges, link-local, multicast, unspecified addresses, cloud-metadata endpoints (169.254.169.254, metadata.google.internal, metadata.azure.com), and non-http/https schemes. Limiting factors for defenders: push notifications must be enabled (not required in every deployment), the SSRF is effectively blind (the push HTTP response is not reflected to the attacker, constraining data exfiltration to timing/behavioral inference), and the fix is already available so only unpatched ≤0.4.3 instances are exposed.

Impact

All signals point to a genuine but moderate-severity SSRF rather than a top-priority emergency. The vendor-supplied CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:N) describes remote, low-complexity, unauthenticated exploitation, but the impact metrics are uniformly Low (VC:L/VI:L/VA:L, SC:N) yielding a 6.9 Medium score, consistent with a largely blind SSRF where the server initiates outbound requests the attacker cannot fully read back. No EPSS probability, SSVC decision data, KEV entry, or public POC is present in the input, so exploitation status is 'no public exploit identified at time of analysis' and there is no evidence of active or automatable exploitation. The patch diff corroborates the real-world concern - it explicitly blocks loopback, RFC1918/ULA private, link-local, multicast, unspecified, and cloud-metadata hosts (169.254.169.254, metadata.google.internal, metadata.azure.com), confirming the primary abuse case is reaching internal/cloud-metadata endpoints. Net judgment: a legitimately exploitable unauthenticated flaw, but the limited (blind, Low-impact) consequence plus a niche Rust library footprint and absence of EPSS/KEV/POC signals place it below genuinely urgent issues. Missing data to flag: no EPSS score, no SSVC framework values, and no KEV/POC status were provided, so exploitation likelihood is inferred from the vector alone.

Exploit ScenarioDerived

On an a2a-rs server (≤0.4.3) with push notifications enabled, a remote client submits a task whose TaskPushNotificationConfig specifies a webhook URL such as http://169.254.169.254/latest/meta-data/ or an internal service address. The unpatched HttpPushSender performs no URL validation and dispatches HTTP requests to that attacker-chosen target, letting the attacker coerce the server into probing internal networks or cloud-metadata endpoints. No public exploit code is identified; exploitation is low-complexity (AC:L) and requires no user interaction, but the SSRF is largely blind since the push response is not returned to the attacker.

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

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

Alert me

AnalysisAIv1 – Oct 21, 2026

Server-side request forgery in a2a-rs 0.4.0 through 0.4.3 lets unauthenticated remote clients steer the A2A server's push-notification sender at arbitrary destinations - loopback (127.0.0.1/::1/localhost), RFC 1918 and IPv6 ULA private ranges, link-local and multicast addresses, cloud metadata endpoints such as 169.254.169.254 and metadata.google.internal, or non-HTTP schemes - by submitting a crafted TaskPushNotificationConfig. The CNA rates it 6.9, and exploitation is conditional on push notifications actually being enabled via with_push_notifications, with the SSRF being effectively blind because the outbound webhook response is not reflected back to the attacker. An upstream fix exists as commit 2ba50176 (PR #124); no public exploit code or CISA KEV entry was identified at time of analysis.

RemediationAI

Apply the upstream fix from commit 2ba50176ea9f222d9a7d0f0e8cfe6fae7cf4c224 (PR #124, https://github.com/a2aproject/a2a-rs/pull/124), which adds URL validation to HttpPushSender and defaults the new HttpPushSenderConfig.validate_urls flag to true - note that an exact tagged release containing this commit is not independently confirmed, so verify against the upstream repository before pinning a version. Where upgrading is not immediately possible, the most effective compensating control is to leave push notifications unconfigured entirely (do not call with_push_notifications), at the cost of losing webhook delivery; otherwise enforce egress filtering on the A2A server so it cannot reach loopback, RFC 1918, link-local or cloud metadata addresses (169.254.169.254, metadata.google.internal, metadata.azure.com), or restrict its outbound HTTP to a fixed allowlist of legitimate webhook hosts - both approaches will break any legitimate internal or localhost webhook targets and require maintaining the allowlist. Additionally, gate TaskPushNotificationConfig submission behind an authorization check or input validator that enforces the same scheme and host restrictions, accepting that this duplicates logic the patched sender performs natively.

Affected VersionsENISA

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

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, and the flaw sits in the server crate's push-notification path (HttpPushSender in the push sender module, referenced in the advisory as crates/server/src/push_notification_sender.rs). When a client submits a TaskPushNotificationConfig, the webhook URL it carries is handed directly to the reqwest HTTP client with no destination validation, the classic CWE-918 server-side request forgery pattern where user-controlled input determines where the server opens a connection. The patch introduces an HttpPushSenderConfig with a validate_urls flag that defaults to true and adds a validate_push_url routine which rejects non-http/https schemes, a blocklist of loopback, metadata and unspecified hosts, and IP-literal targets in loopback, RFC 1918 private, link-local, multicast, unspecified and IPv6 fc00::/7 unique-local ranges - including the subtle cases of bracketed IPv6 literals and IPv4-mapped IPv6 addresses (::ffff:a.b.c.d) that would otherwise slip past range checks. The same commit also rejects CR/LF in push notification tokens and authentication credentials (tracked upstream as BUG-34) to prevent header injection into the outgoing request, so the fix bundles SSRF hardening with header-injection hardening.

Know when the next one hits your stack

  • 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 6.9 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N
vuln.today AI 7.3 HIGH

Remote unauthenticated client-supplied webhook URL (AV:N/AC:L/PR:N/UI:N); blind SSRF yields limited confidentiality/integrity/availability on internal targets, and no clear cross-component scope change (S:U).

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:L/VA:L/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
None
User Interaction
None
Vulnerable system: Confidentiality
Low
Vulnerable system: Integrity
Low
Vulnerable system: Availability
Low
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

A vulnerability has been found in a2aproject a2a-rs up to 0.4.3. This affects the function HttpPushSender of the file crates/server/src/push_notification_sender.rs of the component Push Notification Handler. Such manipulation of the argument TaskPushNotificationConfig leads to server-side request forgery. The attack may be launched remotely. The name of the patch is 2ba50176ea9f222d9a7d0f0e8cfe6fae7cf4c224. Applying a patch is advised to resolve this issue.

Threat Intelligence Overview

EPSS Score
0.5%
Top 60% exploitable
Prevalence
Low
niche emerging Rust A2A-protocol library, limited production deployment
Data Quality
6 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.5%
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
Yes
Human Impact· derived
Medium

Priority Score

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

Attack Technique

Server-Side Request Forgery exploits applications that fetch remote resources based on user-supplied URLs.

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