A2A Java SDK sendet Client-Anmeldeinformationen unter servergesteuertem HTTP-Header-Namen und ermöglicht Offenlegung via Redirect
Auswirkung
Ein bösartiger oder kompromittierter A2A-Agent kann bewirken, dass der API-Schlüssel des Clients an einen beliebigen Drittanbieter-Server weitergeleitet wird. Der Agent liefert eine AgentCard mit APIKeySecurityScheme aus, die einen benutzerdefinierten Header-Namen festlegt, und antwortet anschließend mit einer HTTP-Weiterleitung. Der JDK HttpClient folgt dieser Weiterleitung und leitet den benutzerdefinierten Header mit den Anmeldedaten weiter, da bei domänenübergreifenden Weiterleitungen standardmäßig nur der Header Authorization entfernt werden kann.
Betroffene Komponente
client/transport/spi/src/main/java/org/a2aproject/sdk/client/transport/spi/interceptors/auth/AuthInterceptor.java:69 in intercept
Ursache
Das Feld apiKeySecurityScheme.name() aus der AgentCard des Remote-Agenten (nicht vertrauenswürdige, vom Server kontrollierte Daten) wird beim Übertragen der Client-Anmeldedaten direkt als HTTP-Header-Name übernommen. In Kombination mit der Richtlinie followRedirects(NORMAL) von JdkA2AHttpClient bleiben Anmeldeinformationen unter benutzerdefinierten Header-Namen bei ursprungsübergreifenden Weiterleitungen erhalten (nur Authorization wird auf neueren JDK-Versionen verworfen). Dies ermöglicht es einem bösartigen Agenten, Client-Anmeldedaten an Drittanbieter-Server abzugreifen. Zudem überprüft AuthInterceptor nicht, ob location==HEADER erfüllt ist, bevor die Anmeldedaten als Header gesetzt werden.
Angriffsszenario
- Der Client konfiguriert einen API-Schlüssel für das Sicherheitsschema
myAuthdes Agenten. - Der manipulierte Agent gibt eine AgentCard zurück, in der
securitySchemesmyAuthalsAPIKeySecuritySchememitname='X-Leaked-Cred'undlocation=HEADERenthält. AuthInterceptorplatziert die Zugangsdaten im HeaderX-Leaked-Cred.- Der Agent antwortet mit einer HTTP-302-Weiterleitung auf
https://evil.com/collect. JdkA2AHttpClientfolgt der Weiterleitung und übermittelt alle benutzerdefinierten Header einschließlichX-Leaked-Credanevil.com. Der Angreifer erbeutet so die Zugangsdaten des Clients.
Voraussetzungen
- Die Client-Anwendung hat API-Schlüssel-Anmeldedaten über
CredentialServicefür das Sicherheitsschema des Agenten eingerichtet. - Der Agent ist bösartig oder kompromittiert (er kontrolliert seine eigene AgentCard-Antwort).
- Es wird die Standardkonfiguration
JdkA2AHttpClient(mitfollowRedirects=NORMAL) genutzt. - Die eingesetzte JDK-Version verwirft benutzerdefinierte Header bei domänenübergreifenden Weiterleitungen nicht (alle aktuellen Versionen).
Behebung
Validieren Sie das Feld APIKeySecurityScheme.name() gegen eine Liste sicherer Header-Namen. Stellen Sie sicher, dass apiKeySecurityScheme.location() dem Wert Location.HEADER entspricht, bevor Sie die Zugangsdaten in Header einfügen. Erwägen Sie die Verwendung von followRedirects(NEVER) sowie eine manuelle Weiterleitungsbehandlung, die Authentifizierungs-Header bei Cross-Origin-Weiterleitungen verwirft.
Verifizierung
Durch Lens-Verifier 2/3 bestätigt.
Was zu tun ist
Validieren Sie das Feld APIKeySecurityScheme.name() anhand einer Liste sicherer Headernamen. Stellen Sie sicher, dass apiKeySecurityScheme.location() dem Wert Location.HEADER entspricht, bevor Anmeldeinformationen als Header gesetzt werden. Ziehen Sie die Verwendung von followRedirects(NEVER) und die Implementierung einer manuellen Weiterleitungsbehandlung in Betracht, die alle Authentifizierungs-Header bei domänenübergreifenden Weiterleitungen entfernt. Aktualisieren Sie auf Version 1.3.0.Final oder höher.
Betroffene Software
Klicken Sie auf eine Technologie, um alle zugehörigen Schwachstellen anzuzeigen.
| Plattform | Paket | Anfällige Versionen | Behoben in |
|---|---|---|---|
| Java / Kotlin (Maven) | org.a2aproject.sdk:a2a-java-sdk-parent | < 1.3.0.Final | 1.3.0.Final |
Verweise
- https://github.com/a2aproject/a2a-java/security/advisories/GHSA-4fpj-g9jf-9rgg
- https://github.com/a2aproject/a2a-java/security/advisories/GHSA-9rhm-2h4x-jwmx
- https://nvd.nist.gov/vuln/detail/CVE-2026-111763
- https://github.com/a2aproject/a2a-java/pull/1097
- https://github.com/a2aproject/a2a-java/commit/2a36530d75e11bcf9b81f543464dbe193ca6478e
- https://github.com/a2aproject/a2a-java
- https://github.com/a2aproject/a2a-java/releases/tag/v1.3.0.Final
- CVSS-Vektor
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- Schwäche (CWE)
CWE-522- Plattform
- Java / Kotlin (Maven)
- Paket
org.a2aproject.sdk:a2a-java-sdk-parent- Veröffentlicht
- 20.10.2026
- Aktualisiert
- 21.10.2026 00:18
Quellen und Lizenzen · Von DockRay bearbeitet oder übersetzt; Rechte und Lizenzen der Quellen bleiben erhalten.
OSV / GitHub Advisory Database - GHSA-9rhm-2h4x-jwmx - CC BY 4.0
Schwachstellenhistorie: org.a2aproject.sdk:a2a-java-sdk-parent
Alle veröffentlichten Schwachstellen dieses Pakets (Java / Kotlin (Maven)), neueste zuerst. Zeigt, ob es ein einmaliger Ausrutscher ist oder ein Paket, das man im Auge behalten muss.
Dies ist die einzige bekannte Schwachstelle dieses Pakets.
Erkennen Sie Schwachstellen in Ihrer Anwendung
Mit der DockRay-Integration und aktivierter Softwareinventarisierung prüft DockRay gemeldete Komponentenversionen auf bekannte Schwachstellen und benachrichtigt Sie über bestätigte Treffer. Die Abdeckung hängt von der unterstützten Technologie und den verfügbaren Meldungen ab.