CVE-2026-59898¶
WSO2 Products impacted: no
Customer action required: no
REPORTED VULNERABILITY¶
An attacker can force a WebSocket upgrade via Netty's lax V07 (or V08) handshaker by sending Sec-WebSocket-Version: 7 while omitting the Connection: Upgrade and Upgrade: websocket headers, completing a protocol switch that a proxy would not recognise as an upgrade request and enabling HTTP request smuggling or protocol-confusion attacks. Fixed in 4.1.136.Final and 4.2.16.Final.1
REPORTED PRODUCTS¶
- WSO2 Identity Server : 7.2.0, 7.3.0
WSO2 JUSTIFICATION¶
A single Netty distribution reaches the runtime in WSO2 Identity Server, shipped as a WSO2 orbit bundle that re-wraps an upstream release within the affected range. The vulnerable class is therefore physically present, and this finding turns entirely on whether it is reachable.
The server-side WebSocket handshakers are never used. The only other reference is unused. The single copy of this class name outside the Netty bundle appears in the Vert.x core classes inlined into the Vert.x JSON Schema bundle. Its one consumer, the OAuth Rich Authorization Requests component, uses Vert.x purely for JSON schema validation (JsonSchema, SchemaRepository, Validator, JsonObject, FileSystem) and never touches its HTTP API; io.vertx.core.http.HttpServer is referenced by nothing in the distribution.
The defect requires serving a WebSocket upgrade from a Netty HTTP server, and none is started.
No Netty HTTP server is ever started. io.netty.handler.codec.http.HttpServerCodec and io.netty.handler.codec.spdy.SpdyFrameCodec are referenced by nothing in the shipped distribution, so no Netty server pipeline is ever built. WSO2 Identity Server serves all inbound HTTP through embedded Apache Tomcat, configured in repository/conf/tomcat/catalina-server.xml.
Based on this evidence, we conclude that this vulnerability does not pose a security risk to the impacted versions of WSO2 products listed above.