Średnia

A2A Java SDK przesyła dane uwierzytelniające klienta pod nazwą nagłówka HTTP kontrolowaną przez serwer, umożliwiając wyciek danych przez przekierowanie

  • Ujawniono: 20.10.2026
  • Aktualizacja: 21.10.2026 00:18

Wpływ

Złośliwy lub przejęty agent A2A może spowodować przesłanie klucza API klienta do dowolnego serwera strony trzeciej. Agent zwraca AgentCard z obiektem APIKeySecurityScheme określającym niestandardową nazwę nagłówka, a następnie odpowiada przekierowaniem HTTP. Narzędzie JDK HttpClient podąża za przekierowaniem i przekazuje niestandardowy nagłówek z poświadczeniami, ponieważ przy przekierowaniach cross-origin usuwany bywa wyłącznie standardowy nagłówek Authorization.

Gdzie występuje

client/transport/spi/src/main/java/org/a2aproject/sdk/client/transport/spi/interceptors/auth/AuthInterceptor.java:69 w intercept

Szczegóły problemu

Pole apiKeySecurityScheme.name() z karty AgentCard zdalnego agenta (niezaufane dane kontrolowane przez serwer) jest bezpośrednio używane jako nazwa nagłówka HTTP przy dodawaniu poświadczeń klienta. W połączeniu z polityką followRedirects(NORMAL) stosowaną przez JdkA2AHttpClient, dane uwierzytelniające w niestandardowych nagłówkach są zachowywane przy przekierowaniach między domenami (w nowszych wersjach JDK usuwany jest tylko Authorization), co pozwala na ich wyciek na serwery osób trzecich. Ponadto AuthInterceptor nie sprawdza, czy zachodzi location==HEADER, przed umieszczeniem poświadczenia w nagłówku.

Scenariusz ataku

  1. Klient konfiguruje dane uwierzytelniające klucza API dla schematu bezpieczeństwa agenta myAuth.
  2. Złośliwy agent zwraca AgentCard, w którym securitySchemes zawiera myAuth jako APIKeySecurityScheme z name='X-Leaked-Cred' oraz location=HEADER.
  3. AuthInterceptor umieszcza poświadczenia w nagłówku X-Leaked-Cred.
  4. Agent odpowiada przekierowaniem HTTP 302 na adres https://evil.com/collect.
  5. JdkA2AHttpClient podąża za przekierowaniem, przekazując wszystkie niestandardowe nagłówki, w tym X-Leaked-Cred, do evil.com. Atakujący przejmuje dane uwierzytelniające klienta.

Warunki wstępne

  • Aplikacja klienta ma skonfigurowane poświadczenia klucza API za pomocą CredentialService dla schematu zabezpieczeń agenta.
  • Agent jest złośliwy lub przejęty (kontroluje swoją odpowiedź AgentCard).
  • Używane jest domyślne JdkA2AHttpClient (z followRedirects=NORMAL).
  • Wersja JDK nie usuwa nagłówków niestandardowych przy przekierowaniach cross-origin (dotyczy wszystkich obecnych wersji).

Rozwiązanie

Zweryfikuj pole APIKeySecurityScheme.name() pod kątem białej listy bezpiecznych nazw nagłówków. Sprawdź, czy apiKeySecurityScheme.location() jest równe Location.HEADER, zanim poświadczenia zostaną dodane jako nagłówek. Rozważ użycie followRedirects(NEVER) i wdrożenie ręcznej obsługi przekierowań, która usuwa wszystkie nagłówki uwierzytelniające przy przekierowaniach cross-origin.

Weryfikacja

Potwierdzone za pomocą weryfikatorów soczewkowych 2/3.

Co trzeba zrobić

Należy zweryfikować pole APIKeySecurityScheme.name() pod kątem listy bezpiecznych nazw nagłówków. Przed dodaniem poświadczeń do nagłówka upewnij się, że apiKeySecurityScheme.location() jest równe Location.HEADER. Warto rozważyć użycie followRedirects(NEVER) oraz wdrożenie ręcznej obsługi przekierowań usuwającej nagłówki uwierzytelniające w zapytaniach cross-origin. Zaktualizuj bibliotekę do wersji 1.3.0.Final lub nowszej.

Czego dotyczy

Kliknij technologię, aby zobaczyć wszystkie dotyczące jej podatności.

PlatformaPaczkaPodatne wersjePoprawka w wersji
Java / Kotlin (Maven) org.a2aproject.sdk:a2a-java-sdk-parent < 1.3.0.Final 1.3.0.Final

Odnośniki

Ocena CVSS -
Wektor CVSS
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
Słabość (CWE)
CWE-522
Platforma
Java / Kotlin (Maven)
Paczka
org.a2aproject.sdk:a2a-java-sdk-parent
Ujawniono
20.10.2026
Aktualizacja
21.10.2026 00:18

Źródła i licencje · Redakcja lub tłumaczenie: DockRay. Zachowano prawa źródeł i obowiązujące licencje.

OSV / GitHub Advisory Database - GHSA-9rhm-2h4x-jwmx - CC BY 4.0

Historia podatności: org.a2aproject.sdk:a2a-java-sdk-parent

Wszystkie opisane podatności tej paczki (Java / Kotlin (Maven)), od najnowszej. Widać, czy to jednorazowa wpadka, czy paczka, której trzeba pilnować.

To jedyna znana podatność tej paczki.

Dowiedz się, które podatności dotyczą Twojej aplikacji

Po podłączeniu integracji DockRay i włączeniu raportowania oprogramowania DockRay porównuje zgłoszone wersje komponentów ze znanymi podatnościami i powiadamia o potwierdzonych dopasowaniach. Zakres zależy od obsługiwanej technologii i dostępnych biuletynów.

Podłącz swoją aplikację
Newsletter DockRay

Bezpieczeństwo aplikacji w Twojej skrzynce

Najważniejsze podatności, konkretne zalecenia i praktyczne wskazówki dla Twoich aplikacji. Wybierz technologie i śledź to, co ma znaczenie dla Twojego projektu.

  • Codzienne zestawienie nowych podatności, także krytycznych.
  • Powiadomienia o ważnych aktualizacjach.
  • Praktyczne porady o bezpieczeństwie i monitoringu aplikacji.

Pozostaw puste, aby otrzymywać informacje o wszystkich technologiach.

Zapis jest bezpłatny. Wypiszesz się jednym kliknięciem w wiadomości.