Live › vulnerability › CVE-2026-111762
Go to dashboardThe A2A Java SDK REST transport logs the full request body at SEVERE level when protobuf parsing fails, so push notification bearer tokens and authentication credentials sent by clients end up in server log files in cleartext. Anyone who can read those logs can reuse the credentials to call the client's push notification endpoints and send forged task updates.
Summary written from the sources below. Check the originals before acting.
First seen by InfraStack 2026-10-23 19:11 UTC, 3h before NVD. All times on this page are UTC.
| Product | Ecosystem | Affected | Fixed in |
|---|---|---|---|
| org.a2aproject.sdk:a2a-java-sdk-transport-rest | maven | < 1.3.0.Final | 1.3.0.Final |
1.3.0.Final is affected)1.3.0.Final or laterEach row is the first time that source carried this signal. The analyst’s rows are its own findings.
Where. transport/rest/src/main/java/org/a2aproject/sdk/transport/rest/handler/RestHandler.java:676 in parseRequestBody
What. The parseRequestBody method logs the entire JSON request body at SEVERE level when JsonFormat.parser().merge() throws InvalidProtocolBufferException. This method is called from createTaskPushNotificationConfiguration (line 377), where the body contains client-supplied push notification bearer tokens (field token) and authentication credentials (field authentication.credentials). These secrets are written to server log files in full.
Exploit scenario. A client creates a push notification configuration by POSTing to /v1/tenants/{tenant}/tasks/{taskId}/pushNotificationConfigs with a body containing {"url": "https://client.example.com/webhook", "token": "secret-bearer-token", "authentication": {"scheme": "Bearer", "credentials": "oauth-access-token"}, "extraField": "value"}. The extra field causes JsonFormat.parser().merge() to throw InvalidProtocolBufferException. The entire body including secret-bearer-token and oauth-access-token is logged at SEVERE level. An attacker with log access retrieves the cleartext credentials.
Preconditions.
Fix. Do not log the raw request body. Log only a sanitized summary — body length and content type, not content. Replace the log call with something like: log.log(Level.SEVERE, "Error parsing JSON request body (length={0})", body != null ? body.length() : 0).
Verification. 3/3 lens verifiers confirmed.
This page as .md · .json · in your agent: get_signal("CVE-2026-111762")
GitHub Advisory Database, CC-BY 4.0 · NVD data is provided by NIST and is public domain. Posts quoted belong to their authors.