{"schema":"threatline.record/2","record":{"id":"CVE-2026-107285","aliases":["GHSA-3wp9-xfwm-rjjf"],"summary":"AsyncHttpClient: WebSocket proxy credentials sent to the origin server over a CONNECT tunnel","details":"### Impact\nWhen 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.\n\n### Affected versions\n* 3.x: up to and including 3.0.11\n* 2.x: up to and including 2.16.0\n\n### Patches\nFixed 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://.\n\n### Workarounds\nDo not use proxy authentication together with ws:// requests through an HTTP proxy, or use wss:// instead.\n\n### Details\nThe 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://.\n\nNote 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.","categories":["Libraries & packages"],"product":"org.asynchttpclient:async-http-client","vendor":"AsyncHttpClient","ecosystem":"maven","affected_ranges":[{"source":"GitHub Advisory Database","source_url":"https://github.com/advisories/GHSA-3wp9-xfwm-rjjf","source_modified_at":"2026-10-08T16:30:59Z","fetched_at":"2026-10-23T18:42:43.628194Z","package":{"ecosystem":"maven","name":"org.asynchttpclient:async-http-client"},"range":">= 3.0.0, <= 3.0.11"},{"source":"GitHub Advisory Database","source_url":"https://github.com/advisories/GHSA-3wp9-xfwm-rjjf","source_modified_at":"2026-10-08T16:30:59Z","fetched_at":"2026-10-23T18:42:43.628194Z","package":{"ecosystem":"maven","name":"org.asynchttpclient:async-http-client"},"range":">= 2.0.0, <= 2.16.0"},{"source":"CVE List","source_url":"https://www.cve.org/CVERecord?id=CVE-2026-107285","source_modified_at":"2026-10-08T17:57:33.271Z","fetched_at":"2026-10-23T18:45:31.882637Z","product":"async-http-client","vendor":"AsyncHttpClient","versions":[{"status":"affected","version":">= 3.0.0, <3.0.12"},{"status":"affected","version":">= 2.0.0, < 2.16.1"}],"defaultStatus":null},{"source":"OSV","source_url":"https://osv.dev/vulnerability/GHSA-3wp9-xfwm-rjjf","source_modified_at":"2026-10-08T16:45:18.877610661Z","fetched_at":"2026-10-23T18:52:38.922436Z","package":{"name":"org.asynchttpclient:async-http-client","ecosystem":"Maven","purl":"pkg:maven/org.asynchttpclient/async-http-client"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"3.0.0"},{"fixed":"3.0.12"}]}],"versions":["3.0.0","3.0.1","3.0.10","3.0.11","3.0.2","3.0.3","3.0.4","3.0.5","3.0.6","3.0.7","3.0.8","3.0.9"]},{"source":"OSV","source_url":"https://osv.dev/vulnerability/GHSA-3wp9-xfwm-rjjf","source_modified_at":"2026-10-08T16:45:18.877610661Z","fetched_at":"2026-10-23T18:52:38.922436Z","package":{"name":"org.asynchttpclient:async-http-client","ecosystem":"Maven","purl":"pkg:maven/org.asynchttpclient/async-http-client"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"2.0.0"},{"fixed":"2.16.1"}]}],"versions":["2.0.0","2.0.1","2.0.10","2.0.11","2.0.12","2.0.13","2.0.14","2.0.15","2.0.16","2.0.17","2.0.18","2.0.19","2.0.2","2.0.20","2.0.21","2.0.22","2.0.23","2.0.24","2.0.25","2.0.26","2.0.27","2.0.28","2.0.29","2.0.3","2.0.30","2.0.31","2.0.32","2.0.33","2.0.34","2.0.35","2.0.36","2.0.37","2.0.38","2.0.39","2.0.4","2.0.40","2.0.5","2.0.6","2.0.7","2.0.8","2.0.9","2.1.0","2.1.0-RC1","2.1.0-RC2","2.1.0-RC3","2.1.0-RC4","2.1.0-alpha1","2.1.0-alpha10","2.1.0-alpha11","2.1.0-alpha12"]}],"fixed_versions":[{"source":"GitHub Advisory Database","source_url":"https://github.com/advisories/GHSA-3wp9-xfwm-rjjf","source_modified_at":"2026-10-08T16:30:59Z","fetched_at":"2026-10-23T18:42:43.628194Z","package":{"ecosystem":"maven","name":"org.asynchttpclient:async-http-client"},"version":"3.0.12"},{"source":"GitHub Advisory Database","source_url":"https://github.com/advisories/GHSA-3wp9-xfwm-rjjf","source_modified_at":"2026-10-08T16:30:59Z","fetched_at":"2026-10-23T18:42:43.628194Z","package":{"ecosystem":"maven","name":"org.asynchttpclient:async-http-client"},"version":"2.16.1"},{"source":"OSV","source_url":"https://osv.dev/vulnerability/GHSA-3wp9-xfwm-rjjf","source_modified_at":"2026-10-08T16:45:18.877610661Z","fetched_at":"2026-10-23T18:52:38.922436Z","package":{"name":"org.asynchttpclient:async-http-client","ecosystem":"Maven","purl":"pkg:maven/org.asynchttpclient/async-http-client"},"version":"3.0.12"},{"source":"OSV","source_url":"https://osv.dev/vulnerability/GHSA-3wp9-xfwm-rjjf","source_modified_at":"2026-10-08T16:45:18.877610661Z","fetched_at":"2026-10-23T18:52:38.922436Z","package":{"name":"org.asynchttpclient:async-http-client","ecosystem":"Maven","purl":"pkg:maven/org.asynchttpclient/async-http-client"},"version":"2.16.1"}],"cvss":5.9,"severity":"Medium","kev":{"listed":false},"epss":{"probability":0.00206,"percentile":0.10061,"score_date":"2026-10-23"},"published_at":"2026-10-07T21:28:34.620Z","modified_at":"2026-10-08T17:57:33.271Z","provenance":[{"source":"GitHub Advisory Database","url":"https://github.com/advisories/GHSA-3wp9-xfwm-rjjf","fetched_at":"2026-10-23T18:42:43.628194Z","source_modified_at":"2026-10-08T16:30:59Z"},{"source":"CVE List","url":"https://www.cve.org/CVERecord?id=CVE-2026-107285","fetched_at":"2026-10-23T18:45:31.882637Z","source_modified_at":"2026-10-08T17:57:33.271Z"},{"source":"OSV","url":"https://osv.dev/vulnerability/GHSA-3wp9-xfwm-rjjf","fetched_at":"2026-10-23T18:52:38.922436Z","source_modified_at":"2026-10-08T16:45:18.877610661Z"},{"source":"EPSS","url":"https://api.first.org/data/v1/epss?cve=CVE-2026-107285","fetched_at":"2026-10-23T18:42:43.628194Z","source_modified_at":"2026-10-23"}],"sources":["GitHub Advisory Database","CVE List","OSV","EPSS"],"references":[{"source":"CVE List","url":"https://github.com/AsyncHttpClient/async-http-client/security/advisories/GHSA-3wp9-xfwm-rjjf","tags":["x_refsource_CONFIRM"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-107285","source":"GitHub Advisory Database"},{"source":"CVE List","url":"https://github.com/AsyncHttpClient/async-http-client/commit/6e9cb75a9b7259353f983fc90ca28b1da3742e18","tags":["x_refsource_MISC"]},{"source":"CVE List","url":"https://github.com/AsyncHttpClient/async-http-client/commit/c4feab0f7f86d61505a48e40d383c8a375a22e18","tags":["x_refsource_MISC"]},{"source":"CVE List","url":"https://github.com/AsyncHttpClient/async-http-client/releases/tag/async-http-client-project-2.16.1","tags":["x_refsource_MISC"]},{"source":"CVE List","url":"https://github.com/AsyncHttpClient/async-http-client/releases/tag/async-http-client-project-3.0.12","tags":["x_refsource_MISC"]},{"url":"https://github.com/advisories/GHSA-3wp9-xfwm-rjjf","source":"GitHub Advisory Database"}],"locations":[],"motoko_assessment":{"status":"requires_architecture_review","automatic_remediation":false},"cve_state":"PUBLISHED","ssvc":{"exploitation":"none","automatable":"no","technical_impact":"partial","assessed_at":"2026-10-08T15:26:07.255353Z"},"classification":{"method":"product-first software-layer rules","rules_version":"2.1","matched_on":"ecosystem","confidence":"heuristic","reviewed":false},"change_timestamp":"2026-10-08T17:57:33.271Z","content_hash":"25c6e5c6e043a29a05a4e50b53896ac43efd8e6ea5046b2bf3b1bcb7e525162e"}}
