Media

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

  • Publicada: 20.10.2026
  • Actualizado: 21.10.2026 00:18

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

  1. El cliente configura una credencial de clave de API para el esquema de seguridad myAuth del agente.
  2. El agente malicioso devuelve una AgentCard donde securitySchemes incluye myAuth como APIKeySecurityScheme con name='X-Leaked-Cred' y location=HEADER.
  3. AuthInterceptor inserta la credencial en el encabezado X-Leaked-Cred.
  4. El agente responde con una redirección HTTP 302 a https://evil.com/collect.
  5. JdkA2AHttpClient sigue la redirección, reenviando todos los encabezados personalizados, incluido X-Leaked-Cred, a evil.com. El atacante captura la credencial del cliente.

Condiciones previas

  • La aplicación cliente ha configurado credenciales de clave de API mediante CredentialService para el esquema de seguridad del agente.
  • El agente es malicioso o está comprometido (controla su propia respuesta AgentCard).
  • Se utiliza el valor predeterminado JdkA2AHttpClient (con followRedirects=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.

PlataformaPaqueteVersiones vulnerablesCorregida en
Java / Kotlin (Maven) org.a2aproject.sdk:a2a-java-sdk-parent < 1.3.0.Final 1.3.0.Final

Referencias

Puntuación CVSS -
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.

Conectar tu aplicación
Newsletter DockRay

La seguridad de tus aplicaciones en tu correo

Vulnerabilidades importantes, recomendaciones concretas y consejos prácticos para tus aplicaciones. Elige tus tecnologías y sigue lo que importa para tu proyecto.

  • Un resumen diario de nuevas vulnerabilidades, también las críticas.
  • Avisos sobre actualizaciones importantes.
  • Consejos prácticos sobre seguridad y monitorización de aplicaciones.

Déjalo vacío para recibir avisos de todas las tecnologías.

Suscripción gratuita. Date de baja con un clic en cualquier correo.