CVE-2026-107231
AsyncHttpClient: Digest challenge without a usable nonce downgrades to Basic and sends the password in cleartext
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, Realm.Builder treats a Digest challenge that yields no usable nonce as a Basic challenge. A malicious origin or proxy can label a challenge Digest while omitting or emptying the nonce, causing the client to resend the username and password using reversible Basic authentication. Both origin and proxy challenge parsers are affected. This issue is fixed in versions 3.0.13 and 2.16.1.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- None
- User interaction
- None
What an attacker can affect
- Confidentiality
- High
- Integrity
- None
- Availability
- None
Exploit likelihood
What each source reports
CVE List Score used
8.7
AsyncHttpClient: Digest challenge without a usable nonce downgrades to Basic and sends the password in cleartext
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, Realm.Builder treats a Digest challenge that yields no usable nonce as a Basic challenge. A malicious origin or proxy can label a challenge Digest while omitting or emptying the nonce, causing the client to resend the username and password using reversible Basic authentication. Both origin and proxy challenge parsers are affected. This issue is fixed in versions 3.0.13 and 2.16.1.
- Record
CVE-2026-107231- CVSS 4.0
- 8.7 High
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N - Weakness
- CWE-319, CWE-522, CWE-757
- Updated
- 2026-11-02
EUVDEUVD-2026-94636
8.7
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, Realm.Builder treats a Digest challenge that yields no usable nonce as a Basic challenge. A malicious origin or proxy can label a challenge Digest while omitting or emptying the nonce, causing the client to resend the username and password using reversible Basic authentication. Both origin and proxy challenge parsers are affected. This issue is fixed in versions 3.0.13 and 2.16.1.
- Record
EUVD-2026-94636- CVSS 4.0
- 8.7 High
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N - Updated
- 2026-11-02
GitHub AdvisoriesGHSA-rqf5-2wxv-rjf4
8.7
AsyncHttpClient: Digest challenge without a usable nonce downgrades to Basic and sends the password in cleartext
Impact
A Digest challenge that does not yield a usable nonce is treated as a Basic challenge. The client then answers it with Authorization: Basic, which carries the username and password base64 encoded and so recoverable by anyone who sees the request.
Any of these is enough, sent by whoever writes the 401 or 407:
WWW-Authenticate: Digest realm="protected"
WWW-Authenticate: Digest realm="protected", nonce=""
The challenge announces itself as Digest, so it passes the check that would otherwise reject a non-Digest challenge for a Digest realm. It then fails to produce a nonce, and the absence of a nonce is what selected Basic. A server offering plain Basic to a Digest realm gets nothing, so labelling the challenge Digest and leaving the nonce out is what makes the difference.
This is reachable by anyone who can write the challenge: a malicious or compromised origin, a proxy, or an attacker on a plaintext hop. Digest exists precisely to keep the password off those hops. A server that stores only HA1, and anyone impersonating the real origin, does not otherwise learn the password itself, so the disclosure enables reuse against other services.
Both the target and the proxy paths are affected, through parseWWWAuthenticateHeader and parseProxyAuthenticateHeader.
Affected versions
- 3.x: up to and including 3.0.12
- 2.x: up to and including 2.16.0
This is long-standing behaviour on both lines, not a recent regression. On 3.0.12 there is one additional way to reach it: a quoted parameter ending in an unescaped backslash, such as realm="C:\", makes the closing quote read as escaped so the nonce is never found. That trigger is specific to 3.0.12. The downgrade it led to is fixed, but the nonce is still lost on such a challenge: every conformant reader treats the closing quote as escaped. The exchange now fails instead of falling back to Basic.
Patches
Fixed in 3.0.13 on the 3.x line and in 2.16.1 on the 2.x line. The scheme now comes from the challenge itself instead of being inferred from whether a nonce was found, so a Digest challenge stays Digest even when it cannot be read. With no nonce it produces no Authorization header at all, which fails the exchange rather than downgrading it.
The 3.x fix also corrects quoted-pair handling so that a backslash before any character other than a quote or another backslash is kept as written, matching Apache HttpComponents. That repairs a 3.0.12 regression where an unescaped realm such as DOMAIN\Users was corrupted to DOMAINUsers and failed every digest comparison. This is a deliberate deviation from a strict reading of RFC 9110 Section 5.6.4, under which a backslash before any character is a quoted-pair. Reading it strictly is what corrupts the unescaped spelling that servers actually send, and the decoding is not reversible either way, so the client follows the same rule as Apache HttpComponents.
Workarounds
No configuration prevents this. Until you can upgrade, do not use Digest authentication against a server you do not control, and do not use it over plaintext HTTP.
Details
Realm.Builder.parseWWWAuthenticateHeader and parseProxyAuthenticateHeader selected the scheme with isNonEmpty(nonce) ? AuthScheme.DIGEST : AuthScheme.BASIC, so any challenge that produced no nonce became a Basic challenge and Unauthorized401Interceptor resent the request using computeBasicAuthentication.
- Record
GHSA-rqf5-2wxv-rjf4- CVSS 4.0
- 8.7 High
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N - Weakness
- CWE-319, CWE-522, CWE-757
- Updated
- 2026-11-02
NVD
8.7
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, Realm.Builder treats a Digest challenge that yields no usable nonce as a Basic challenge. A malicious origin or proxy can label a challenge Digest while omitting or emptying the nonce, causing the client to resend the username and password using reversible Basic authentication. Both origin and proxy challenge parsers are affected. This issue is fixed in versions 3.0.13 and 2.16.1.
- Record
CVE-2026-107231- CVSS 4.0
- 8.7 High
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/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 - Weakness
- CWE-319, CWE-522, CWE-757
- Updated
- 2026-11-02
OSV
8.7
AsyncHttpClient: Digest challenge without a usable nonce downgrades to Basic and sends the password in cleartext
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, Realm.Builder treats a Digest challenge that yields no usable nonce as a Basic challenge. A malicious origin or proxy can label a challenge Digest while omitting or emptying the nonce, causing the client to resend the username and password using reversible Basic authentication. Both origin and proxy challenge parsers are affected. This issue is fixed in versions 3.0.13 and 2.16.1.
- Record
CVE-2026-107231- CVSS 4.0
- 8.7 High
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N - Weakness
- CWE-319, CWE-522, CWE-757
- Updated
- 2026-11-02
OSVDEBIAN-CVE-2026-107231
8.7
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, Realm.Builder treats a Digest challenge that yields no usable nonce as a Basic challenge. A malicious origin or proxy can label a challenge Digest while omitting or emptying the nonce, causing the client to resend the username and password using reversible Basic authentication. Both origin and proxy challenge parsers are affected. This issue is fixed in versions 3.0.13 and 2.16.1.
- Record
DEBIAN-CVE-2026-107231- CVSS 4.0
- 8.7 High
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/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 - Updated
- 2026-11-02
Show 5 moreShow less
OSVGHSA-rqf5-2wxv-rjf4
8.7
AsyncHttpClient: Digest challenge without a usable nonce downgrades to Basic and sends the password in cleartext
Impact
A Digest challenge that does not yield a usable nonce is treated as a Basic challenge. The client then answers it with Authorization: Basic, which carries the username and password base64 encoded and so recoverable by anyone who sees the request.
Any of these is enough, sent by whoever writes the 401 or 407:
WWW-Authenticate: Digest realm="protected"
WWW-Authenticate: Digest realm="protected", nonce=""
The challenge announces itself as Digest, so it passes the check that would otherwise reject a non-Digest challenge for a Digest realm. It then fails to produce a nonce, and the absence of a nonce is what selected Basic. A server offering plain Basic to a Digest realm gets nothing, so labelling the challenge Digest and leaving the nonce out is what makes the difference.
This is reachable by anyone who can write the challenge: a malicious or compromised origin, a proxy, or an attacker on a plaintext hop. Digest exists precisely to keep the password off those hops. A server that stores only HA1, and anyone impersonating the real origin, does not otherwise learn the password itself, so the disclosure enables reuse against other services.
Both the target and the proxy paths are affected, through parseWWWAuthenticateHeader and parseProxyAuthenticateHeader.
Affected versions
- 3.x: up to and including 3.0.12
- 2.x: up to and including 2.16.0
This is long-standing behaviour on both lines, not a recent regression. On 3.0.12 there is one additional way to reach it: a quoted parameter ending in an unescaped backslash, such as realm="C:\", makes the closing quote read as escaped so the nonce is never found. That trigger is specific to 3.0.12. The downgrade it led to is fixed, but the nonce is still lost on such a challenge: every conformant reader treats the closing quote as escaped. The exchange now fails instead of falling back to Basic.
Patches
Fixed in 3.0.13 on the 3.x line and in 2.16.1 on the 2.x line. The scheme now comes from the challenge itself instead of being inferred from whether a nonce was found, so a Digest challenge stays Digest even when it cannot be read. With no nonce it produces no Authorization header at all, which fails the exchange rather than downgrading it.
The 3.x fix also corrects quoted-pair handling so that a backslash before any character other than a quote or another backslash is kept as written, matching Apache HttpComponents. That repairs a 3.0.12 regression where an unescaped realm such as DOMAIN\Users was corrupted to DOMAINUsers and failed every digest comparison. This is a deliberate deviation from a strict reading of RFC 9110 Section 5.6.4, under which a backslash before any character is a quoted-pair. Reading it strictly is what corrupts the unescaped spelling that servers actually send, and the decoding is not reversible either way, so the client follows the same rule as Apache HttpComponents.
Workarounds
No configuration prevents this. Until you can upgrade, do not use Digest authentication against a server you do not control, and do not use it over plaintext HTTP.
Details
Realm.Builder.parseWWWAuthenticateHeader and parseProxyAuthenticateHeader selected the scheme with isNonEmpty(nonce) ? AuthScheme.DIGEST : AuthScheme.BASIC, so any challenge that produced no nonce became a Basic challenge and Unauthorized401Interceptor resent the request using computeBasicAuthentication.
- Record
GHSA-rqf5-2wxv-rjf4- CVSS 4.0
- 8.7 High
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N - Weakness
- CWE-319, CWE-522, CWE-757
- Updated
- 2026-11-02
OSVUBUNTU-CVE-2026-107231
8.7
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, Realm.Builder treats a Digest challenge that yields no usable nonce as a Basic challenge. A malicious origin or proxy can label a challenge Digest while omitting or emptying the nonce, causing the client to resend the username and password using reversible Basic authentication. Both origin and proxy challenge parsers are affected. This issue is fixed in versions 3.0.13 and 2.16.1.
- Record
UBUNTU-CVE-2026-107231- CVSS 4.0
- 8.7 High
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N - Updated
- 2026-11-02
OSVCLSA-2026-1791926769 No score
TuxCare security update for org.asynchttpclient (13 CVEs)
TuxCare rebuilt 14 org.asynchttpclient packages to address 13 CVEs. Fixed in 2.12.1-tuxcare.1.
- Record
CLSA-2026-1791926769- Updated
- 2026-11-02
OSVCLSA-2026-1793887823 No score
TuxCare security update for org.asynchttpclient (16 CVEs)
TuxCare rebuilt 14 org.asynchttpclient packages to address 16 CVEs. Fixed in 2.12.3-tuxcare.2.
- Record
CLSA-2026-1793887823- Updated
- 2026-11-06
OSVROOT-APP-MAVEN-CVE-2026-107231 No score
CVE-2026-107231 in org.asynchttpclient:async-http-client - Patched by Root
Root has patched CVE-2026-107231 in the org.asynchttpclient:async-http-client package for Root:Maven. Multiple fixed versions available.
- Record
ROOT-APP-MAVEN-CVE-2026-107231- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
org.asynchttpclient:async-http-clientMaven |
3.0.0.Beta1 to 3.0.12 | 3.0.13 |
org.asynchttpclient:async-http-clientMaven |
2.0.0 to 2.16.0 | 2.16.1 |
org.asynchttpclient:async-http-clientTuxCare:Maven From an advisory covering 12 CVEs |
2.12.1 up to 2.12.1-tuxcare.1 | 2.12.1-tuxcare.1 |
org.asynchttpclient:async-http-client-bomTuxCare:Maven From an advisory covering 12 CVEs |
2.12.1 up to 2.12.1-tuxcare.1 | 2.12.1-tuxcare.1 |
org.asynchttpclient:async-http-client-exampleTuxCare:Maven From an advisory covering 12 CVEs |
2.12.1 up to 2.12.1-tuxcare.1 | 2.12.1-tuxcare.1 |
org.asynchttpclient:async-http-client-extras-guavaTuxCare:Maven From an advisory covering 12 CVEs |
2.12.1 up to 2.12.1-tuxcare.1 | 2.12.1-tuxcare.1 |
org.asynchttpclient:async-http-client-extras-jdeferredTuxCare:Maven From an advisory covering 12 CVEs |
2.12.1 up to 2.12.1-tuxcare.1 | 2.12.1-tuxcare.1 |
org.asynchttpclient:async-http-client-extras-parentTuxCare:Maven From an advisory covering 12 CVEs |
2.12.1 up to 2.12.1-tuxcare.1 | 2.12.1-tuxcare.1 |
org.asynchttpclient:async-http-client-extras-registryTuxCare:Maven From an advisory covering 12 CVEs |
2.12.1 up to 2.12.1-tuxcare.1 | 2.12.1-tuxcare.1 |
org.asynchttpclient:async-http-client-extras-retrofit2TuxCare:Maven From an advisory covering 12 CVEs |
2.12.1 up to 2.12.1-tuxcare.1 | 2.12.1-tuxcare.1 |
Show 33 moreShow less
| Package | Affected | Fixed |
|---|---|---|
org.asynchttpclient:async-http-client-extras-rxjavaTuxCare:Maven From an advisory covering 12 CVEs |
2.12.1 up to 2.12.1-tuxcare.1 | 2.12.1-tuxcare.1 |
org.asynchttpclient:async-http-client-extras-rxjava2TuxCare:Maven From an advisory covering 12 CVEs |
2.12.1 up to 2.12.1-tuxcare.1 | 2.12.1-tuxcare.1 |
org.asynchttpclient:async-http-client-extras-simpleTuxCare:Maven From an advisory covering 12 CVEs |
2.12.1 up to 2.12.1-tuxcare.1 | 2.12.1-tuxcare.1 |
org.asynchttpclient:async-http-client-extras-typesafe-configTuxCare:Maven From an advisory covering 12 CVEs |
2.12.1 up to 2.12.1-tuxcare.1 | 2.12.1-tuxcare.1 |
org.asynchttpclient:async-http-client-netty-utilsTuxCare:Maven From an advisory covering 12 CVEs |
2.12.1 up to 2.12.1-tuxcare.1 | 2.12.1-tuxcare.1 |
org.asynchttpclient:async-http-client-projectTuxCare:Maven From an advisory covering 12 CVEs |
2.12.1 up to 2.12.1-tuxcare.1 | 2.12.1-tuxcare.1 |
org.asynchttpclient:async-http-clientTuxCare:Maven From an advisory covering 15 CVEs |
2.12.3 up to 2.12.3-tuxcare.2, plus listed versions 2.12.3-tuxcare.1 |
2.12.3-tuxcare.2 |
org.asynchttpclient:async-http-client-bomTuxCare:Maven From an advisory covering 15 CVEs |
2.12.3 up to 2.12.3-tuxcare.2, plus listed versions 2.12.3-tuxcare.1 |
2.12.3-tuxcare.2 |
org.asynchttpclient:async-http-client-exampleTuxCare:Maven From an advisory covering 15 CVEs |
2.12.3 up to 2.12.3-tuxcare.2, plus listed versions 2.12.3-tuxcare.1 |
2.12.3-tuxcare.2 |
org.asynchttpclient:async-http-client-extras-guavaTuxCare:Maven From an advisory covering 15 CVEs |
2.12.3 up to 2.12.3-tuxcare.2, plus listed versions 2.12.3-tuxcare.1 |
2.12.3-tuxcare.2 |
org.asynchttpclient:async-http-client-extras-jdeferredTuxCare:Maven From an advisory covering 15 CVEs |
2.12.3 up to 2.12.3-tuxcare.2, plus listed versions 2.12.3-tuxcare.1 |
2.12.3-tuxcare.2 |
org.asynchttpclient:async-http-client-extras-parentTuxCare:Maven From an advisory covering 15 CVEs |
2.12.3 up to 2.12.3-tuxcare.2, plus listed versions 2.12.3-tuxcare.1 |
2.12.3-tuxcare.2 |
org.asynchttpclient:async-http-client-extras-registryTuxCare:Maven From an advisory covering 15 CVEs |
2.12.3 up to 2.12.3-tuxcare.2, plus listed versions 2.12.3-tuxcare.1 |
2.12.3-tuxcare.2 |
org.asynchttpclient:async-http-client-extras-retrofit2TuxCare:Maven From an advisory covering 15 CVEs |
2.12.3 up to 2.12.3-tuxcare.2, plus listed versions 2.12.3-tuxcare.1 |
2.12.3-tuxcare.2 |
org.asynchttpclient:async-http-client-extras-rxjavaTuxCare:Maven From an advisory covering 15 CVEs |
2.12.3 up to 2.12.3-tuxcare.2, plus listed versions 2.12.3-tuxcare.1 |
2.12.3-tuxcare.2 |
org.asynchttpclient:async-http-client-extras-rxjava2TuxCare:Maven From an advisory covering 15 CVEs |
2.12.3 up to 2.12.3-tuxcare.2, plus listed versions 2.12.3-tuxcare.1 |
2.12.3-tuxcare.2 |
org.asynchttpclient:async-http-client-extras-simpleTuxCare:Maven From an advisory covering 15 CVEs |
2.12.3 up to 2.12.3-tuxcare.2, plus listed versions 2.12.3-tuxcare.1 |
2.12.3-tuxcare.2 |
org.asynchttpclient:async-http-client-extras-typesafe-configTuxCare:Maven From an advisory covering 15 CVEs |
2.12.3 up to 2.12.3-tuxcare.2, plus listed versions 2.12.3-tuxcare.1 |
2.12.3-tuxcare.2 |
org.asynchttpclient:async-http-client-netty-utilsTuxCare:Maven From an advisory covering 15 CVEs |
2.12.3 up to 2.12.3-tuxcare.2, plus listed versions 2.12.3-tuxcare.1 |
2.12.3-tuxcare.2 |
org.asynchttpclient:async-http-client-projectTuxCare:Maven From an advisory covering 15 CVEs |
2.12.3 up to 2.12.3-tuxcare.2, plus listed versions 2.12.3-tuxcare.1 |
2.12.3-tuxcare.2 |
async-http-clientDebian:12 |
All versions, plus listed versions 2.12.3-12.12.3-1+deb12u1 |
None known |
org.asynchttpclient:async-http-clientMaven |
3.0.0.Beta1 up to 3.0.13, plus listed versions 3.0.03.0.0.Beta23.0.0.Beta33.0.13.0.10 Show 10 moreShow less3.0.113.0.123.0.23.0.33.0.43.0.53.0.63.0.73.0.83.0.9 |
3.0.13 |
org.asynchttpclient:async-http-clientMaven |
2.0.0 up to 2.16.1, plus listed versions 2.0.12.0.102.0.112.0.122.0.13 Show 45 moreShow less2.0.142.0.152.0.162.0.172.0.182.0.192.0.22.0.202.0.212.0.222.0.232.0.242.0.252.0.262.0.272.0.282.0.292.0.32.0.302.0.312.0.322.0.332.0.342.0.352.0.362.0.372.0.382.0.392.0.42.0.402.0.52.0.62.0.72.0.82.0.92.1.02.1.0-RC12.1.0-RC22.1.0-RC32.1.0-RC42.1.0-alpha12.1.0-alpha102.1.0-alpha112.1.0-alpha122.1.0-alpha13 |
2.16.1 |
org.asynchttpclient:async-http-clientRoot:Maven |
before 2.15.0-aikido.1 | 2.15.0-aikido.13.0.10-aikido.1 |
io.root.org.asynchttpclient:async-http-clientRoot:Maven |
before 2.15.0-root.io.1 | 2.15.0-root.io.13.0.10-root.io.1 |
async-http-clientUbuntu:Pro:14.04:LTS |
All versions, plus listed versions 1.6.5-11.6.5-21.6.5-2ubuntu0.1~esm1 |
None known |
async-http-clientUbuntu:16.04:LTS |
All versions, plus listed versions 1.6.5-4 |
None known |
async-http-clientUbuntu:18.04:LTS |
All versions, plus listed versions 1.6.5-41.6.5-5 |
None known |
async-http-clientUbuntu:Pro:20.04:LTS |
All versions, plus listed versions 2.6.0-12.6.0-1ubuntu0.1~esm1 |
None known |
async-http-clientUbuntu:22.04:LTS |
All versions, plus listed versions 2.12.2-12.12.3-12.12.3-1ubuntu0.22.04.1 |
None known |
async-http-clientUbuntu:24.04:LTS |
All versions, plus listed versions 2.12.3-12.12.3-1ubuntu0.24.04.1 |
None known |
async-http-clientUbuntu:26.10 |
All versions, plus listed versions 2.12.3-1ubuntu1 |
None known |
async-http-clientUbuntu:26.04:LTS |
All versions, plus listed versions 2.12.3-12.12.3-1ubuntu12.12.3-1ubuntu1.1 |
None known |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected, aliases | OSV | |
| affected, facts | ||
| first indexed | CVE List, EUVD, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2026-107231 is a high vulnerability (CVSS 8.7) in Asynchttpclient Async-http-client, published October 7, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.24%, the 14th percentile. Fixed in org.asynchttpclient:async-http-client 3.0.13.
References
github.com/AsyncHttpClient/async-http-client/security/advisories/GHSA-rqf5-2wxv-rjf4
github.com/AsyncHttpClient/async-http-client/commit/8376866aa9b5a7653ad19db9d472692f875caa83
github.com/AsyncHttpClient/async-http-client/commit/c8d639bf6ac341d377d610a93570bcd15565f1a6
github.com/AsyncHttpClient/async-http-client/releases/tag/async-http-client-project-2.16.1
github.com/AsyncHttpClient/async-http-client/releases/tag/async-http-client-project-3.0.13
nvd.nist.gov/vuln/detail/CVE-2026-107231
Show 6 moreShow less
Left out here: 61 versions. The JSON record has them.