A2A Java SDK envía credenciales del cliente bajo un nombre de encabezado HTTP controlado por el servidor, facilitando su filtración por redirección
Impacto
Un agente de A2A malicioso o comprometido puede provocar que la clave de API del cliente se reenvíe a un servidor de terceros arbitrario. El agente proporciona una AgentCard con un APIKeySecurityScheme que especifica un nombre de encabezado personalizado y luego responde con una redirección HTTP. El JDK HttpClient sigue la redirección y reenvía el encabezado personalizado que contiene las credenciales, ya que solo el encabezado estándar Authorization puede eliminarse en redirecciones de origen cruzado.
Dónde ocurre
client/transport/spi/src/main/java/org/a2aproject/sdk/client/transport/spi/interceptors/auth/AuthInterceptor.java:69 en intercept
Detalles
El campo apiKeySecurityScheme.name() de la AgentCard del agente remoto (datos no confiables controlados por el servidor) se utiliza directamente como el nombre del encabezado HTTP al adjuntar las credenciales del cliente. Junto con la directiva followRedirects(NORMAL) de JdkA2AHttpClient, las credenciales enviadas en encabezados personalizados se mantienen a través de redirecciones de distinto origen (solo Authorization se elimina en las versiones recientes del JDK), lo que permite a un agente malicioso filtrar credenciales a servidores de terceros. Además, AuthInterceptor no comprueba que location==HEADER antes de incluir la credencial como un encabezado.
Escenario de explotación
- El cliente configura una credencial de clave de API para el esquema de seguridad
myAuthdel agente. - El agente malicioso devuelve una AgentCard donde
securitySchemesincluyemyAuthcomoAPIKeySecuritySchemeconname='X-Leaked-Cred'ylocation=HEADER. AuthInterceptorinserta la credencial en el encabezadoX-Leaked-Cred.- El agente responde con una redirección HTTP 302 a
https://evil.com/collect. JdkA2AHttpClientsigue la redirección, reenviando todos los encabezados personalizados, incluidoX-Leaked-Cred, aevil.com. El atacante captura la credencial del cliente.
Condiciones previas
- La aplicación cliente ha configurado credenciales de clave de API mediante
CredentialServicepara el esquema de seguridad del agente. - El agente es malicioso o está comprometido (controla su propia respuesta AgentCard).
- Se utiliza el valor predeterminado
JdkA2AHttpClient(confollowRedirects=NORMAL). - La versión del JDK no elimina los encabezados personalizados en redirecciones entre diferentes orígenes (todas las versiones actuales).
Solución
Valide el campo APIKeySecurityScheme.name() frente a una lista de nombres de encabezados seguros. Verifique que apiKeySecurityScheme.location() sea igual a Location.HEADER antes de colocar la credencial en un encabezado. Considere usar followRedirects(NEVER) e implementar una gestión manual de redirecciones que suprima los encabezados de autenticación en redirecciones entre orígenes.
Verificación
Confirmado mediante los verificadores de lentes 2/3.
Qué hacer
Valide el campo APIKeySecurityScheme.name() frente a una lista de encabezados seguros. Compruebe que apiKeySecurityScheme.location() coincida con Location.HEADER antes de asignar credenciales a un encabezado. Considere el uso de followRedirects(NEVER) e implemente un manejo manual de redirecciones para suprimir encabezados de autenticación entre orígenes. Actualice a la versión 1.3.0.Final o posterior.
Software afectado
Haz clic en una tecnología para ver todas sus vulnerabilidades.
| Plataforma | Paquete | Versiones vulnerables | Corregida en |
|---|---|---|---|
| Java / Kotlin (Maven) | org.a2aproject.sdk:a2a-java-sdk-parent | < 1.3.0.Final | 1.3.0.Final |
Referencias
- 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
- Vector 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- Debilidad (CWE)
CWE-522- Plataforma
- Java / Kotlin (Maven)
- Paquete
org.a2aproject.sdk:a2a-java-sdk-parent- Publicada
- 20.10.2026
- Actualizado
- 21.10.2026 00:18
Fuentes y licencias · Editado o traducido por DockRay; se mantienen los derechos y las licencias de las fuentes.
OSV / GitHub Advisory Database - GHSA-9rhm-2h4x-jwmx - CC BY 4.0
Historial de vulnerabilidades: org.a2aproject.sdk:a2a-java-sdk-parent
Todas las vulnerabilidades publicadas de este paquete (Java / Kotlin (Maven)), de la más reciente a la más antigua. Muestra si es un fallo aislado o un paquete que hay que vigilar.
Esta es la única vulnerabilidad conocida de este paquete.
Identifica las vulnerabilidades de tu aplicación
Con la integración de DockRay y el inventario de software activado, DockRay compara las versiones notificadas de los componentes con las vulnerabilidades conocidas y avisa de las coincidencias confirmadas. La cobertura depende de la tecnología compatible y de los avisos disponibles.