The AsyncHttpClient (AHC) library allows Java applications to easily execute HTTP requests and asynchronously process HTTP responses. Prior to 3.0.13 and 2.16.1, cross-host request replay updates the current request but leaves the target request and related proxy context pointing at the original origin. Connection-pool selection, CONNECT handling, realm selection, and TLS setup can consequently send the original host's path, Host header, Authorization credentials, or plaintext request to the replay destination. Documented ResponseFilter failover and retry paths can trigger the replay. This issue is fixed in versions 3.0.13 and 2.16.1.
PUBLISHED5.2CWE-319CWE-441CWE-522
AsyncHttpClient: Replay to a different host sends the original host request and credentials to the new host
Problem type
- CWE-319: Cleartext Transmission of Sensitive Information
- CWE-441: Unintended Proxy or Intermediary ('Confused Deputy')
- CWE-522: Insufficiently Protected Credentials
Affected products
AsyncHttpClient
async-http-client
>= 3.0.0, < 3.0.13 - AFFECTED
>= 2.0.0, < 2.16.1 - AFFECTED
References
https://github.com/AsyncHttpClient/async-http-client/security/advisories/GHSA-jmqq-x5g9-9p2w
https://github.com/AsyncHttpClient/async-http-client/security/advisories/GHSA-jmqq-x5g9-9p2w
https://github.com/AsyncHttpClient/async-http-client/commit/15b254514a411623e5f1d8c99ea79c0f82f8a466
https://github.com/AsyncHttpClient/async-http-client/commit/15b254514a411623e5f1d8c99ea79c0f82f8a466
https://github.com/AsyncHttpClient/async-http-client/commit/bbc31aed3b044f9f7a126cf689a8c8d7ad2ae1cb
https://github.com/AsyncHttpClient/async-http-client/commit/bbc31aed3b044f9f7a126cf689a8c8d7ad2ae1cb
https://github.com/AsyncHttpClient/async-http-client/releases/tag/async-http-client-project-2.16.1
https://github.com/AsyncHttpClient/async-http-client/releases/tag/async-http-client-project-2.16.1
https://github.com/AsyncHttpClient/async-http-client/releases/tag/async-http-client-project-3.0.13
https://github.com/AsyncHttpClient/async-http-client/releases/tag/async-http-client-project-3.0.13
JSON source
https://cveawg.mitre.org/api/cve/CVE-2026-107282Click to expand
{
"dataType": "CVE_RECORD",
"dataVersion": "5.2",
"cveMetadata": {
"cveId": "CVE-2026-107282",
"assignerOrgId": "a0819718-46f1-4df5-94e2-005712e83aaa",
"assignerShortName": "GitHub_M",
"dateUpdated": "2026-10-07T21:21:29.349Z",
"dateReserved": "2026-10-07T15:53:23.585Z",
"datePublished": "2026-10-07T21:21:29.349Z",
"state": "PUBLISHED"
},
"containers": {
"cna": {
"providerMetadata": {
"orgId": "a0819718-46f1-4df5-94e2-005712e83aaa",
"shortName": "GitHub_M",
"dateUpdated": "2026-10-07T21:21:29.349Z"
},
"title": "AsyncHttpClient: Replay to a different host sends the original host request and credentials to the new host",
"descriptions": [
{
"lang": "en",
"value": "The AsyncHttpClient (AHC) library allows Java applications to easily execute HTTP requests and asynchronously process HTTP responses. Prior to 3.0.13 and 2.16.1, cross-host request replay updates the current request but leaves the target request and related proxy context pointing at the original origin. Connection-pool selection, CONNECT handling, realm selection, and TLS setup can consequently send the original host's path, Host header, Authorization credentials, or plaintext request to the replay destination. Documented ResponseFilter failover and retry paths can trigger the replay. This issue is fixed in versions 3.0.13 and 2.16.1."
}
],
"affected": [
{
"vendor": "AsyncHttpClient",
"product": "async-http-client",
"versions": [
{
"version": ">= 3.0.0, < 3.0.13",
"status": "affected"
},
{
"version": ">= 2.0.0, < 2.16.1",
"status": "affected"
}
]
}
],
"problemTypes": [
{
"descriptions": [
{
"lang": "en",
"description": "CWE-319: Cleartext Transmission of Sensitive Information",
"cweId": "CWE-319",
"type": "CWE"
}
]
},
{
"descriptions": [
{
"lang": "en",
"description": "CWE-441: Unintended Proxy or Intermediary ('Confused Deputy')",
"cweId": "CWE-441",
"type": "CWE"
}
]
},
{
"descriptions": [
{
"lang": "en",
"description": "CWE-522: Insufficiently Protected Credentials",
"cweId": "CWE-522",
"type": "CWE"
}
]
}
],
"references": [
{
"url": "https://github.com/AsyncHttpClient/async-http-client/security/advisories/GHSA-jmqq-x5g9-9p2w",
"name": "https://github.com/AsyncHttpClient/async-http-client/security/advisories/GHSA-jmqq-x5g9-9p2w",
"tags": [
"x_refsource_CONFIRM"
]
},
{
"url": "https://github.com/AsyncHttpClient/async-http-client/commit/15b254514a411623e5f1d8c99ea79c0f82f8a466",
"name": "https://github.com/AsyncHttpClient/async-http-client/commit/15b254514a411623e5f1d8c99ea79c0f82f8a466",
"tags": [
"x_refsource_MISC"
]
},
{
"url": "https://github.com/AsyncHttpClient/async-http-client/commit/bbc31aed3b044f9f7a126cf689a8c8d7ad2ae1cb",
"name": "https://github.com/AsyncHttpClient/async-http-client/commit/bbc31aed3b044f9f7a126cf689a8c8d7ad2ae1cb",
"tags": [
"x_refsource_MISC"
]
},
{
"url": "https://github.com/AsyncHttpClient/async-http-client/releases/tag/async-http-client-project-2.16.1",
"name": "https://github.com/AsyncHttpClient/async-http-client/releases/tag/async-http-client-project-2.16.1",
"tags": [
"x_refsource_MISC"
]
},
{
"url": "https://github.com/AsyncHttpClient/async-http-client/releases/tag/async-http-client-project-3.0.13",
"name": "https://github.com/AsyncHttpClient/async-http-client/releases/tag/async-http-client-project-3.0.13",
"tags": [
"x_refsource_MISC"
]
}
],
"metrics": [
{}
]
}
}
}