GHSA-3wp9-xfwm-rjjf: Medium severity maven/org.asynchttpclient:async-http-client vulnerability

Published Oct 8, 2026
·
Updated

Impact When a ws:// request is routed through an HTTP proxy with proxy authentication configured, the client tunnels the connection with an HTTP CONNECT, the same as it does for https://. Once the tunnel is open, the WebSocket upgrade request that follows is sent through the tunnel directly to the origin server, not to the proxy. The proxy-auth gate and the companion request-target selection keyed only on whether the URI was secured, which is false for ws://, so the tunnelled upgrade request incorrectly carried the proxy's Proxy-Authorization header and an absolute-form request target meant for the proxy. Any origin server reached over a proxied ws:// connection, or anyone positioned on the origin side of the wire, could recover the proxy credentials: directly for Basic, or as a replayable and offline-crackable response for Digest.

Affected versions 3.x: up to and including 3.0.11 2.x: up to and including 2.16.0

Patches Fixed in 3.0.12 on the 3.x line and in 2.16.1 on the 2.x line. The preemptive Proxy-Authorization header and the absolute-form request target are no longer attached to a tunnelled ws:// upgrade; a ws:// request is now treated like wss://.

Workarounds Do not use proxy authentication together with ws:// requests through an HTTP proxy, or use wss:// instead.

Details The proxy-auth gate in NettyRequestFactory#newNettyRequest and the sibling branch in requestUri() did not exclude WebSocket URIs, even though the CONNECT-tunnelling check in NettyRequestSender already tunnels ws:// through CONNECT exactly like https://.

Note that 3.0.12 is itself affected by a separate issue, GHSA-rqf5-2wxv-rjf4, where a Digest challenge the client cannot read downgrades to Basic and sends the password in cleartext. Upgrade to 3.0.13 to pick up both fixes.

Affected Software

2 affected componentsFixes available
maven/org.asynchttpclient:async-http-client>=2.0.0<=2.16.0
2.16.1
maven/org.asynchttpclient:async-http-client>=3.0.0<=3.0.11
3.0.12

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade maven/org.asynchttpclient:async-http-client to a version that resolves this vulnerability.

    Fixed in 2.16.1
  2. Upgrade

    Upgrade maven/org.asynchttpclient:async-http-client to a version that resolves this vulnerability.

    Fixed in 3.0.12
  3. Upgrade

    Upgrade to a fixed release to a version that resolves this vulnerability.

    Fixed in 3.0.13
  4. Upgrade

    Upgrade to a fixed release to a version that resolves this vulnerability.

    Fixed in 2.16.1
  5. Compensating control

    Do not use proxy authentication with ws:// requests through an HTTP proxy; use wss:// instead.

Event History

Oct 8, 2026
Advisory Published
via GitHub·04:30 PM
Data Sourced
via GitHub·04:30 PM
DescriptionSeverityWeaknessAffected Software

Frequently Asked Questions

1

Which deployments are exposed?

Deployments are exposed when AsyncHttpClient sends ws:// WebSocket requests through an HTTP proxy configured with proxy authentication. The issue affects connections that create an HTTP CONNECT tunnel before sending the WebSocket upgrade request.

2

What could an attacker obtain?

The origin server, or a party positioned on the origin side of the tunneled connection, could recover proxy credentials. Basic credentials could be recovered directly, while Digest responses could be replayed or cracked offline.

3

Which versions need to be upgraded?

Affected releases are AsyncHttpClient 3.x through 3.0.11 and 2.x through 2.16.0. Upgrade to 3.0.12 on the 3.x line or 2.16.1 on the 2.x line.

4

What changes after applying the fix?

Tunnelled ws:// upgrade requests no longer include the preemptive Proxy-Authorization header or the absolute-form request target intended for the proxy. ws:// requests are treated like wss:// requests for this behavior.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203