Skip to main content

A2A Java SDK CVE-2026-111761

| EUVDEUVD-2026-105043 MEDIUM
Server-Side Request Forgery (SSRF) (CWE-918)
2026-10-20 GitHub_M GHSA-q78c-5jjq-57g8
5.8
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

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

  1. Access
    Send message with malicious push-notification config
  2. Delivery
    Server stores webhook URL unvalidated
  3. Exploit
    Task status/artifact update fires
  4. Execution
    Server POSTs task data to internal address
  5. Impact
    Attacker-influenced data reaches internal infrastructure

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 push notifications enabled, which is the DEFAULT (a2a.push-notification.enabled=true per the vendor configuration docs). An unauthenticated caller then supplies an attacker-controlled destination URL either via an inline SendMessage pushNotification config or via CreateTaskPushNotificationConfig for an existing task; BasePushNotificationSender/InMemoryPushNotificationConfigStore store and use it verbatim with no scheme restriction, destination validation, or redirect bounds. Exploitation further depends on network routing actually permitting the server to reach the chosen loopback/private/link-local/cloud-metadata/IPv6-ULA/multicast target. Key LIMITING factors: the attack is blind - the fetched response is discarded and no delivery success/failure is exposed, so there is no data read-back; a webhook redirect converts the POST to a GET and drops the body, so only direct (non-redirected) POST delivery pushes task data into internal services; and the fixed releases plus default-deny validation (allow-private-network-targets=false, https-only schemes) remove the condition once upgraded.

Impact

This is a CWE-918 Server-Side Request Forgery in the A2A Java SDK rated CVSS 5.8 (medium). The CVSS vector (AV:N/AC:L/PR:N/UI:N/S:C/C:N/I:L/A:N) aligns well with the description: network-reachable, low-complexity, unauthenticated abuse in the default configuration (push notifications enabled), with a changed scope because the forged requests leave the A2A server and reach separate internal systems. Crucially, impact is constrained - C:N and A:N with only I:L - because the sender discards the fetched response and exposes no success/failure, making this BLIND SSRF with no response read-back, and a webhook redirect downgrades the POST to a GET that drops the body. No EPSS score, KEV entry, or POC was supplied, and there is no public exploit identified at time of analysis, so the real-world exploitation signal is currently weak despite the unauthenticated, network-facing nature. Net assessment: a legitimate medium-priority SSRF worth patching (especially in cloud environments exposing 169.254.169.254 metadata endpoints), but not a drop-everything emergency - the blind, low-integrity-only impact and absence of any exploitation evidence argue against treating it as a high-real-risk issue. The vendor acknowledges residual DNS-rebinding exposure even after the fix, so network-level egress filtering remains advisable.

Exploit ScenarioDerived

An unauthenticated attacker sends a message to a default A2A Java server (push notifications enabled) with an inline push-notification config pointing the webhook URL at an internal address such as the cloud metadata endpoint (169.254.169.254) or a loopback/private service. When the task's status or artifacts update, the server issues a POST from its own network position to that internal destination, pushing attacker-influenced task data into services the attacker cannot normally reach. No POC is publicly identified; exploitation is blind because the server never returns the fetched response.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.5% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Oct 20, 2026

Server-side request forgery in the A2A Java SDK before 1.3.0.Final allows an unauthenticated caller to register an attacker-chosen push-notification destination and make the server send task updates to loopback, private, link-local, cloud-metadata, IPv6 unique-local, or multicast addresses where routing permits. Push notifications are enabled by default, and the vulnerable BasePushNotificationSender sends to the stored TaskPushNotificationConfig URL without scheme restrictions, destination validation, or redirect bounds, although the attack is blind because responses are discarded and delivery success is not exposed. No public exploit was identified at time of analysis; the issue is rated CVSS 5.8 (medium, CWE-918) and is fixed in 1.3.0.Final.

RemediationAI

Upgrade to 1.3.0.Final, which is the vendor-released patch and introduces DefaultPushNotificationUrlValidator with default-deny settings (https-only schemes; private, loopback, link-local, RFC 6598, IPv6 unique-local, IPv4-mapped IPv6, and multicast targets blocked). If immediate upgrade is not possible, set a2a.push-notification.enabled=false to stop accepting push-notification configurations; this removes the SSRF condition but disables webhook functionality, causes inline sendMessage configs to be silently ignored, and makes CreateTaskPushNotificationConfig return UnsupportedOperationError. Do not set a2a.push-notification.url.allow-private-network-targets=true outside trusted development environments. Because hostname resolution occurs at validation rather than connection time and the vendor documents a DNS-rebinding limitation, add network-level egress firewall rules that block the server from reaching loopback, RFC 1918, link-local 169.254.0.0/16, 100.64.0.0/10, IPv6 fc00::/7, and cloud metadata endpoints; the trade-off is that legitimate internal webhook targets must be explicitly allowed. References: https://github.com/a2aproject/a2a-java/security/advisories/GHSA-q78c-5jjq-57g8, https://github.com/a2aproject/a2a-java/pull/1096, https://github.com/a2aproject/a2a-java/commit/b855b2ae37e4bf23f73e7746ce166fbc5a0b8b5b, https://github.com/a2aproject/a2a-java/releases/tag/v1.3.0.Final.

Affected VersionsENISA

a2a-java < 1.3.0.Final

Affected Packages

maven org.a2aproject.sdk:a2a-java-sdk-server-common fix: 1.3.0.Final
euvd a2a_java fix: 1.3.0.Final

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 2 packages in maven, euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

CWE-918 Server-Side Request Forgery is present in the A2A Java SDK's server-common push notification path. InMemoryPushNotificationConfigStore.setInfo persists the client-supplied destination URL verbatim, and onCreateTaskPushNotificationConfig does not validate it; BasePushNotificationSender then POSTs task status and artifact data to that URL. Because JdkA2AHttpClient and VertxA2AHttpClient follow redirects, a webhook can redirect the delivery, and a POST-to-GET redirect drops the request body; hostname-only checks do not prevent DNS rebinding because resolution occurs at validation time rather than connection time. The 1.3.0.Final fix adds PushNotificationUrlValidator/DefaultPushNotificationUrlValidator with configurable properties: a2a.push-notification.enabled, a2a.push-notification.url.allowed-schemes (default https), a2a.push-notification.url.allow-private-network-targets (default false, blocking loopback, link-local, site-local, RFC 6598 shared space, IPv6 unique-local, IPv4-mapped IPv6, and multicast), and a2a.push-notification.url.dns-cache-ttl-seconds. The CPE cpe:2.3:a:a2aproject:a2a-java:*:*:*:*:*:*:*:* covers all prior releases.

Know when A2A Java 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 (GitHub_M) PRIMARY 5.8 MEDIUM
AV:N/AC:L/PR:N/UI:N/S:C/C:N/I:L/A:N
vuln.today AI 5.8 MEDIUM

Unauthenticated network request forgery in default config (AV:N/AC:L/PR:N); scope changes to internal systems (S:C); blind SSRF yields I:L only with no response read-back (C:N/A:N).

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

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Changed
Confidentiality
None
Integrity
Low
Availability
None

Lifecycle Timeline

1
Patch available
Oct 20, 2026 - 16:02 EUVD

DescriptionCVE.org

A2A Java SDK is the official Java SDK for the Agent2Agent (A2A) Protocol. Prior to 1.3.0.Final, BasePushNotificationSender in server-common sends task data to the URL in TaskPushNotificationConfig without destination validation, scheme restrictions, or bounds on redirects. InMemoryPushNotificationConfigStore.setInfo stores the URL verbatim, and onCreateTaskPushNotificationConfig does not validate the destination. In the default deployment with push notifications enabled, an unauthenticated caller can register a destination through an inline SendMessage configuration or CreateTaskPushNotificationConfig for an existing task, causing task status and artifact updates to send requests from the server's network position to loopback, private, link-local cloud-metadata, IPv6 unique-local, unspecified, or multicast destinations where routing permits. JdkA2AHttpClient and VertxA2AHttpClient follow redirects, allowing a webhook redirect to bypass creation-time destination checks and convert a POST into a GET; hostname-only checks also do not prevent DNS rebinding. Direct POST delivery can push attacker-influenced task data into internal services, whereas a redirected POST-to-GET request drops the body. The sender discards the fetched response and does not expose delivery success or failure, so the demonstrated behavior does not provide response read-back. No credentials or user interaction are required. This issue is fixed in version 1.3.0.Final.

Blast Radius

ecosystem impact
† from your stack dependencies † transitive graph · vuln.today resolves 4-path depth
  • 37 maven packages depend on org.a2aproject.sdk:a2a-java-sdk-server-common (24 direct, 13 indirect)

Ecosystem-wide dependent count for version 1.3.0.Final.

Threat Intelligence Overview

EPSS Score
0.5%
Top 57% exploitable
Prevalence
Low
emerging niche Agent2Agent protocol SDK, limited production deployment footprint
Threat Intel
1
1 source
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 Yes
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

30
Low Medium High Critical
KEV: 0
EPSS: +1
CVSS: +29
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