Skip to main content

AsyncHttpClient EUVDEUVD-2026-94644

| CVE-2026-107284 LOW
Insufficient Verification of Data Authenticity (CWE-345)
2026-10-07 GitHub_M
3.7
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Lure client to malicious WebSocket server
  2. Delivery
    Send 101 with invalid Sec-WebSocket-Accept
  3. Exploit
    Coalesce WebSocket frames in same buffer
  4. Execution
    Frames decoded despite failed handshake
  5. Impact
    Spoofed data delivered to application listener

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A08:2025 - Software or Data Integrity Failures
ASVS 5.0
V15 - Secure Coding and Architecture Data authenticity verification
Exploitation Conditions

The victim application must use AsyncHttpClient's WebSocket feature (WebSocketUpgradeHandler) on a version prior to 3.0.12 or 2.16.1 and initiate a connection to a server the attacker controls or can MITM. The attacker must return a 101 Switching Protocols response with a missing or invalid Sec-WebSocket-Accept value AND pipeline/coalesce WebSocket frames into the same read buffer as that 101 response. Limiting factors: the request future still fails and the channel is closed, so the attacker has only a narrow window in which coalesced frames are decoded and delivered (reflected as AC:H); impact is limited to injection of unverified frames into the listener (no confidentiality or availability impact); and exploitation is impossible unless the client is steered to an attacker-controlled or intercepted endpoint.

Impact

This is a genuinely low-priority issue, and the signals are consistent rather than conflicting. The provided CVSS 3.1 vector (AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N, base 3.7) correctly reflects a client-side trust flaw with only low integrity impact and no confidentiality or availability impact. Exploitation requires high complexity (AC:H) because the malicious server must race WebSocket frames coalesced into the same buffer as the invalid 101 response before the channel closes. No EPSS score, KEV listing, or public exploit was supplied; the only 'source code evidence' is the vendor's fix commit plus a regression test (WebSocketHandshakeValidationTest), which is remediation evidence, NOT a weaponized proof-of-concept. There is no CVSS-versus-description conflict: both describe a remote, unauthenticated-peer, low-impact integrity problem. Recommended handling is routine patching during the normal upgrade cycle rather than emergency response. Note: EPSS data is absent, so widespread-exploitation probability cannot be quantified, but the client-side nature and need for attacker-controlled/MITM server position strongly limit real-world risk.

Exploit ScenarioDerived

A Java application using AsyncHttpClient opens a WebSocket to an attacker-controlled or man-in-the-middle server. The server returns a 101 Switching Protocols response with a missing or invalid Sec-WebSocket-Accept header but pipelines WebSocket frames into the same buffer; because the vulnerable code continues into pipeline installation and onOpen delivery before closing, those unverified frames are decoded and handed to the application listener. No public exploit exists - only the vendor's fix and a regression test are available.

Monitor Track and reassess. Why: LOW severity (CVSS 0.1-3.9).
Patch available 0.1% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 07, 2026

Improper verification of the WebSocket opening handshake in AsyncHttpClient (AHC) versions prior to 3.0.12 and 2.16.1 lets a malicious or man-in-the-middle WebSocket endpoint have frames decoded and delivered to the application's WebSocketListener even though the server's Sec-WebSocket-Accept value was missing or invalid and the 101 upgrade was never authenticated. Only Java applications that use the WebSocketUpgradeHandler on an affected AHC release and connect to an attacker-controlled or intercepted endpoint are exposed, and because the request future still fails and the channel is closed the window for delivering coalesced frames is narrow and the impact is limited to integrity of listener-delivered data. No public exploit code has been identified at time of analysis and the issue is not known to be actively exploited, consistent with its low CVSS 3.1 score of 3.7 (AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N).

RemediationAI

Upgrade to a vendor-released patched version: AsyncHttpClient 3.0.12 for the 3.x line or 2.16.1 for the 2.x line, both of which contain the early-return fix in WebSocketHandler.upgrade and the handshake-validation regression test; consult the advisory at https://github.com/AsyncHttpClient/async-http-client/security/advisories/GHSA-rwhr-j9rv-85f8 and the release tags https://github.com/AsyncHttpClient/async-http-client/releases/tag/async-http-client-project-3.0.12 and https://github.com/AsyncHttpClient/async-http-client/releases/tag/async-http-client-project-2.16.1, with the code changes visible at commit 75a278550aa9a980009d022fb4e635f9c8738c03 and commit ccdcaa627db6d96dcc42105212cb3ba5048bd7f9. If an immediate upgrade is not possible, restrict WebSocket use to explicitly trusted endpoints over wss:// with strict TLS certificate validation (and certificate pinning where practical) so that a rogue or MITM server cannot present an unauthenticated 101, understanding that this is only a compensating control and does not fix clients pointed at already-compromised or misconfigured endpoints; alternatively, avoid WebSocketUpgradeHandler entirely in builds that do not need WebSocket functionality, at the cost of losing that feature. No vendor workaround short of upgrading fully eliminates the defect, since the root cause is the client continuing protocol processing after a failed accept-token check.

Affected VersionsENISA

async-http-client 2.0.0, < 2.16.1
async-http-client 3.0.0, < 3.0.12

Affected Packages

euvd async_http_client_2_0_0 fix: 2.16.1
euvd async_http_client_3_0_0 fix: 3.0.12

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 2 packages in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

RFC 6455 section 4.1 requires a WebSocket client to verify that the Sec-WebSocket-Accept header returned in the server's 101 Switching Protocols response equals the base64-encoded SHA-1 digest of the client's Sec-WebSocket-Key nonce concatenated with the fixed GUID, and to fail the connection if it does not. In AHC the upgrade logic lives in org.asynchttpclient.netty.handler.WebSocketHandler.upgrade; prior to the fix it aborted the handshake on a missing or invalid accept token but did not return early, so execution continued into Netty pipeline installation and onOpen listener delivery. Any WebSocket frames coalesced into the same read buffer as the bogus 101 response could therefore be decoded and surfaced to the application even though the peer had not proven the handshake, a classic insufficient verification of data authenticity (CWE-345) defect in a Java/Netty-based asynchronous HTTP client. The upstream fix simply inserts an early return so that an invalid handshake terminates the upgrade path entirely, and the accompanying regression test WebSocketHandshakeValidationTest asserts that onOpen never fires when the accept value does not match.

Know when Java gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (GitHub_M) PRIMARY 3.7 LOW
AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N
vuln.today AI 3.7 LOW

A malicious or MITM server must race frames coalesced past a failed handshake, so AC:H; peer needs no credentials (PR:N); only unverified frame injection occurs, so I:L with C:N and A:N.

3.1 AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N
4.0 AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
High
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
Low
Availability
None

Lifecycle Timeline

1
Patch available
Oct 07, 2026 - 23:02 EUVD

DescriptionCVE.org

The AsyncHttpClient (AHC) library allows Java applications to easily execute HTTP requests and asynchronously process HTTP responses. Prior to 3.0.12 and 2.16.1, WebSocketHandler.upgrade aborts a handshake whose Sec-WebSocket-Accept value is missing or invalid but continues into pipeline installation and onOpen delivery. Frames coalesced with the invalid 101 response can be decoded and delivered from a peer that did not prove the handshake, although the request future fails and the channel closes. This issue is fixed in versions 3.0.12 and 2.16.1.

Threat Intelligence Overview

EPSS Score
0.1%
Top 97% exploitable
Prevalence
Medium
popular Java HTTP client library, but client-side WebSocket use is narrower
Social Media
1
Sightings
Data Quality
6 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment CIRCL GitHub VulDB

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity LOW
CISA KEV No
Public POC No
EPSS 0.1%
Patch available Yes
Active threat No
Deciding rule
LOW severity (CVSS 0.1-3.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Defer
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Low
Technical Impact
Partial

Priority Score

18
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +18
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

More in Java

View all
CVE-2012-4681 CRITICAL POC
9.8 Aug 28

Oracle Java SE 7 Update 6 and earlier contains multiple sandbox bypass vulnerabilities via the ClassFinder and forName m

CVE-2015-7450 CRITICAL POC
9.8 Jan 02

Remote code execution in IBM Sterling B2B Integrator, Sterling Integrator, and Tivoli Common Reporting allows unauthenti

CVE-2013-2465 CRITICAL POC
9.8 Jun 18

Java Runtime Environment sandbox bypass via incorrect image channel verification in 2D component allows remote unauthent

CVE-2011-3544 CRITICAL POC
9.8 Oct 19

Oracle Java SE JDK/JRE 7 and 6 Update 27 and earlier allows remote code execution with complete system compromise throug

CVE-2010-1871 HIGH POC
8.8 Aug 05

JBoss Seam 2 in Red Hat JBoss EAP 4.3.0 fails to sanitize JBoss Expression Language inputs, allowing remote attackers to

CVE-2012-1723 CRITICAL POC
9.8 Jun 16

Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 update 4 and earlier, 6 up

CVE-2013-0422 CRITICAL POC
9.8 Jan 10

Multiple vulnerabilities in Oracle Java 7 before Update 11 allow remote attackers to execute arbitrary code by (1) using

CVE-2012-0507 CRITICAL POC
9.8 Jun 07

Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 Update 2 and earlier, 6 Up

CVE-2015-4852 CRITICAL POC
9.8 Nov 18

The WLS Security component in Oracle WebLogic Server 10.3.6.0, 12.1.2.0, 12.1.3.0, and 12.2.1.0 allows remote attackers

CVE-2012-5076 CRITICAL POC
9.8 Oct 16

Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 Update 7 and earlier allow

CVE-2017-3066 CRITICAL POC
9.8 Apr 27

Remote unauthenticated attackers can execute arbitrary code on Adobe ColdFusion servers through Java deserialization fla

CVE-2012-0391 CRITICAL POC
9.8 Jan 08

The ExceptionDelegator component in Apache Struts before 2.2.3.1 interprets parameter values as OGNL expressions during

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy