Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessCompromise or impersonate remote A2A agent
-
DeliveryServe malicious AgentCard declaring credential header name
-
ExploitClient injects configured API key into custom header
-
ExecutionAgent returns cross-origin redirect to attacker host
-
ImpactCredential-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. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – 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
Affected Packages
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
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
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).
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
1DescriptionCVE.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
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.
Credential disclosure in the A2A Java SDK Android HTTP client versions 1.3.0.Final and 1.3.1.Final allows unauthenticate
Unauthenticated task-read disclosure in the A2A Java SDK before 1.3.0.Final lets any network caller retrieve another cal
HTTP response splitting in a2a-java 1.2.0 allows attackers who control push notification authentication credentials to i
Server-side request forgery in the A2A Java SDK before 1.3.0.Final allows an unauthenticated caller to register an attac
Cleartext credential disclosure in the A2A Java SDK prior to 1.3.0.Final writes push-notification bearer tokens and auth
Missing authorization in the A2A Java SDK (a2aproject/a2a-java) 1.2.0 allows a caller with a valid account to invoke the
EUVD-2026-105127
GHSA-9rhm-2h4x-jwmx
NVD
CVE.org
EPSS
VulDB
Exploit-DB