Skip to main content

A2A Java SDK EUVDEUVD-2026-105127

| CVE-2026-111763 MEDIUM
Insufficiently Protected Credentials (CWE-522)
2026-10-20 GitHub_M GHSA-9rhm-2h4x-jwmx
5.7
CVSS 4.0 · Vendor: GitHub_M
View

Attack ChainAIDerived

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

  1. Access
    Compromise or impersonate remote A2A agent
  2. Delivery
    Serve malicious AgentCard declaring credential header name
  3. Exploit
    Client injects configured API key into custom header
  4. Execution
    Agent returns cross-origin redirect to attacker host
  5. Impact
    Credential-bearing header forwarded, API key exfiltrated

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V6 - Authentication Credential protection in transit/storage
Exploitation Conditions

Exploitation requires all of: (1) the client application has configured API key credentials through CredentialService for the agent's APIKeySecurityScheme; (2) the client uses the default JdkA2AHttpClient, which calls followRedirects(NORMAL); (3) the attacker controls the agent's AgentCard and can declare an arbitrary APIKeySecurityScheme name (and a non-HEADER location that pre-patch code ignores); and (4) the attacker controls the agent's HTTP response to issue a cross-origin redirect to a third-party host. LIMITING FACTORS: only deployments that actually configure API key authentication and connect to a malicious or compromised agent are affected; clients not using the default JDK-based HTTP client, or not using header-based API key credentials, are not exposed. No per-request end-user interaction is needed once the client is configured to talk to the agent.

Impact

Signals point to a genuine but moderate-priority issue, not a top-of-queue emergency. The vendor CVSS 4.0 score is 5.7 (Medium) with vector AV:L/AC:L/AT:P/PR:L/UI:N/VC:H/VI:N/VA:N, reflecting high confidentiality impact (API key disclosure) but no integrity or availability impact. No EPSS score, no CISA KEV listing, and no SSVC decision data were provided, so exploitation-probability and automatability signals are simply absent rather than low - treat them as unknown. No public exploit was identified; the only code artifact is the fix PR (#1097), which is a patch, not a weaponized POC. CONFLICT TO VERIFY: the vendor assigned AV:L (local), yet the described attack is carried out by a remote agent server over the network via a cross-origin HTTP redirect, which maps more naturally to AV:N - the local rating appears to treat the pre-existing local credential configuration as the attack context; verify with the vendor advisory before using AV for prioritization. Realistically this requires a victim that (a) uses the default JDK client, (b) has configured API key credentials, and (c) connects to an attacker-controlled or compromised agent, so it is better characterized as targeted/opportunistic credential theft within A2A deployments than as broad, automatable mass exploitation.

Exploit ScenarioDerived

A client application is configured via CredentialService with an API key for a remote A2A agent whose AgentCard the attacker controls (either a malicious agent or a compromised legitimate one). The agent returns a cross-origin HTTP redirect, and because the default JdkA2AHttpClient uses followRedirects(NORMAL) and AuthInterceptor injects the API key into an attacker-named header without verifying the scheme's declared HEADER location, the credential-bearing custom header is forwarded to the attacker's third-party server even though the standard Authorization header would be stripped. No public exploit code was identified at time of analysis; only the vendor fix (PR #1097) is available.

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

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

Alert me

AnalysisAIv1 – Oct 20, 2026

A2A Java SDK releases prior to 1.3.0.Final leak configured API key credentials to attacker-controlled third-party servers: the default JDK-based client trusts the header name declared in a remote agent's AgentCard and, because JdkA2AHttpClient follows cross-origin redirects, an agent-controlled redirect can carry that credential-bearing custom header to an arbitrary host even when the standard Authorization header is stripped. The issue is unauthenticated from the attacker's perspective (PR:N in the assessed CVSS:3.1 vector AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N, scored 5.7), but exploitation is conditional: the client must use CredentialService to store an API key for the agent's APIKeySecurityScheme, must use the default JDK HTTP transport, and must connect to a malicious or compromised agent that controls both its AgentCard and its redirect response. Impact is confidentiality-only and scoped to the leaked credential; the fix is the vendor-released 1.3.0.Final, and no public exploit code or active exploitation (CISA KEV) was identified at time of analysis.

RemediationAI

Upgrade to A2A Java SDK 1.3.0.Final, which enforces APIKeySecurityScheme.Location.HEADER and restricts injected credentials to an allowlist of authentication header names (authorization, x-api-key, api-key, x-auth-token, x-authentication); the patch is available via the release tag https://github.com/a2aproject/a2a-java/releases/tag/v1.3.0.Final, PR https://github.com/a2aproject/a2a-java/pull/1097 and commit 2a36530d75e11bcf9b81f543464dbe193ca6478e, with details in advisories GHSA-9rhm-2h4x-jwmx and GHSA-4fpj-g9jf-9rgg. If immediate upgrade is not possible, apply these compensating controls: configure the HTTP client with followRedirects(NEVER) or a strictly disabled redirect policy, accepting that legitimate agent redirects will fail and must be resolved manually; or replace JdkA2AHttpClient with a transport that does not replay custom headers across origins, which requires code changes and re-testing. Alternatively, avoid APIKeySecurityScheme with custom header names - use an Authorization/Bearer or OAuth scheme instead - so no attacker-named header can be emitted, at the cost of changing agent authentication contracts. As a defense-in-depth measure, restrict outbound egress from client hosts to known agent endpoints and treat remote AgentCards as untrusted input; this reduces but does not eliminate exposure. Finally, treat any API key previously sent to a non-trusted or compromised agent as disclosed and rotate it, since the leaked value remains valid until rotated.

Affected VersionsENISA

a2a-java < 1.3.0.Final

Affected Packages

maven org.a2aproject.sdk:a2a-java-sdk-parent 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

A2A Java SDK is the official Java implementation of the Agent2Agent protocol, in which a client discovers a remote agent's capabilities and security requirements from an AgentCard document. When an application registers credentials via CredentialService, AuthInterceptor (client/transport/spi/.../interceptors/auth/AuthInterceptor.java) reads the APIKeySecurityScheme object from the remote AgentCard and injects the stored secret directly into an HTTP header named by APIKeySecurityScheme.name(). Pre-patch code never validated APIKeySecurityScheme.location(), so a scheme declaring a non-HEADER location (QUERY, COOKIE) was still honored as a header, and the header name itself was fully attacker-chosen. Because the default JdkA2AHttpClient is configured with followRedirects(NORMAL), a redirect issued by the agent to a different origin causes the JDK HttpClient to replay the custom credential header - a header the standard redirect logic does not sanitize the way it does Authorization. This is CWE-522 (Insufficiently Protected Credentials): the SDK fails to bind credential emission to a validated transport location and header namespace. The upstream patch resolves this by requiring location == HEADER and by comparing the declared name, case-insensitively, against an allowlist of authentication headers (authorization, x-api-key, api-key, x-auth-token, x-authentication); anything outside the allowlist is silently skipped, and new unit tests in AuthInterceptorTest cover safe names, case-insensitive matching, and rejection of attacker-controlled header names such as X-Malicious-Redirect-Header.

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

Attacker is a remote agent server reached over the network (AV:N) needing no client privileges (PR:N); success depends on a configured API key plus a crafted cross-origin redirect (AC:H); only the credential's confidentiality is impacted (C:H, I:N, A:N).

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

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Local
Attack Complexity
Low
Attack Requirements
Present
Privileges Required
Low
User Interaction
None
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
None
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

1
Patch available
Oct 20, 2026 - 17:18 EUVD

DescriptionCVE.org

A2A Java SDK is the official Java SDK for the Agent2Agent (A2A) Protocol. Prior to 1.3.0.Final, a malicious or compromised remote agent can cause the default JDK-based client to forward a configured API key to a third-party server. When a client application configures credentials through CredentialService, AuthInterceptor.intercept in client/transport/spi/src/main/java/org/a2aproject/sdk/client/transport/spi/interceptors/auth/AuthInterceptor.java uses APIKeySecurityScheme.name() from the remote AgentCard directly as the HTTP header name containing the credential, without checking that the declared location is HEADER. JdkA2AHttpClient uses followRedirects(NORMAL), so an agent-controlled cross-origin redirect forwards the custom credential-bearing header even when the standard Authorization header is stripped. The attack requires configured API key credentials for the agent's security scheme and control of the agent's AgentCard and redirect response, but no additional client privileges. This issue is fixed in version 1.3.0.Final.

Threat Intelligence Overview

EPSS Score
0.1%
Top 97% exploitable
Prevalence
Low
emerging agentic-AI Java SDK, limited current 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.1%
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
Defer
Exploitation· derived
None
System Exposure· derived
Small
Automatable· derived
No
Human Impact· derived
Medium

Priority Score

28
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +28
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.

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