A2A Java SDK: Credenciales de notificaciones push registradas en texto claro tras fallos de análisis de protobuf
Impacto
Los tokens portadores de notificaciones push y las credenciales de autenticación enviados por los clientes se registran en texto claro en los archivos de registro del servidor. Cualquier operador, sistema de agregación de registros o atacante con acceso a dichos registros puede leer estos secretos y utilizarlos para autenticarse en los extremos de notificación push del cliente, enviando potencialmente actualizaciones de estado de tareas falsificadas.
Dónde
transport/rest/src/main/java/org/a2aproject/sdk/transport/rest/handler/RestHandler.java:676 en parseRequestBody
Detalles
El método parseRequestBody registra todo el cuerpo de la solicitud JSON en el nivel SEVERE cuando JsonFormat.parser().merge() genera InvalidProtocolBufferException. Este método es invocado desde createTaskPushNotificationConfiguration (línea 377), donde el cuerpo contiene tokens portadores de notificaciones push proporcionados por el cliente (campo token) y credenciales de autenticación (campo authentication.credentials). Estos secretos se escriben por completo en los archivos de registro del servidor.
Escenario de explotación
Un cliente crea una configuración de notificación push realizando una petición POST a /v1/tenants/{tenant}/tasks/{taskId}/pushNotificationConfigs con un cuerpo que contiene {"url": "https://client.example.com/webhook", "token": "secret-bearer-token", "authentication": {"scheme": "Bearer", "credentials": "oauth-access-token"}, "extraField": "value"}. El campo adicional provoca que JsonFormat.parser().merge() lance InvalidProtocolBufferException. El cuerpo completo, incluidos secret-bearer-token y oauth-access-token, se registra en el nivel SEVERE. Un atacante con acceso a los registros recupera las credenciales en texto claro.
Condiciones previas
- El atacante debe tener acceso a los archivos de registro del servidor (registro centralizado, agregación de registros, infraestructura compartida o acceso interno).
- La funcionalidad de notificaciones push debe estar habilitada.
- El cuerpo de la solicitud debe fallar en la deserialización de protobuf siendo al mismo tiempo un JSON válido (campos desconocidos con análisis estricto, discrepancias de esquema).
Corrección
No registrar el cuerpo sin procesar de la solicitud. Registrar únicamente un resumen saneado: la longitud del cuerpo y el tipo de contenido, no su contenido. Sustituir la llamada de registro por algo como: log.log(Level.SEVERE, "Error parsing JSON request body (length={0})", body != null ? body.length() : 0).
Verificación
Confirmado por los verificadores de lentes 3/3.
Qué hacer
Actualice a la versión 1.3.0.Final o posterior del paquete org.a2aproject.sdk:a2a-java-sdk-transport-rest.
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-transport-rest | < 1.3.0.Final | 1.3.0.Final |
Referencias
- https://github.com/a2aproject/a2a-java/security/advisories/GHSA-x32g-jvvm-4725
- https://nvd.nist.gov/vuln/detail/CVE-2026-111762
- https://github.com/a2aproject/a2a-java/commit/88827105fee0daaac0d883a4a68eb644571d7230
- 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/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X- Debilidad (CWE)
CWE-532- Plataforma
- Java / Kotlin (Maven)
- Paquete
org.a2aproject.sdk:a2a-java-sdk-transport-rest- Publicada
- 20.10.2026
- Actualizado
- 21.10.2026 00:21
Fuentes y licencias · Editado o traducido por DockRay; se mantienen los derechos y las licencias de las fuentes.
OSV / GitHub Advisory Database - GHSA-x32g-jvvm-4725 - CC BY 4.0
Historial de vulnerabilidades: org.a2aproject.sdk:a2a-java-sdk-transport-rest
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.