CVE-2026-10099
Received Received - Intake
XX-Net WebSocket Frame Parsing Data Corruption Vulnerability

Publication date: 2026-05-29

Last updated on: 2026-05-29

Assigner: VulnCheck

Description
XX-Net V5.16.6 contains a WebSocket frame parsing vulnerability in the WebSocket_receive_worker routine of simple_http_server.py that allows attackers to cause corrupted application data by sending unmasked WebSocket frames. The server unconditionally reads 4 bytes as a masking key regardless of whether the MASK bit is set in the frame header, causing the first 4 bytes of payload to be consumed as a mask key and the remaining payload to be incorrectly XOR-decoded, resulting in data corruption alongside missing RSV bit, opcode, and FIN fragmentation validations.
CVSS Scores
EPSS Scores
Probability:
Percentile:
Meta Information
Published
2026-05-29
Last Modified
2026-05-29
Generated
2026-05-29
AI Q&A
2026-05-29
EPSS Evaluated
N/A
NVD
EUVD
Affected Vendors & Products
Showing 2 associated CPEs
Vendor Product Version / Range
xx-net xx-net 5.16.6
xx-net xx-net to 5.16.6 (exc)
Helpful Resources
Exploitability
CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-1286 The product receives input that is expected to be well-formed - i.e., to comply with a certain syntax - but it does not validate or incorrectly validates that the input complies with the syntax.
Attack-Flow Graph
AI Powered Q&A
Can you explain this vulnerability to me?

CVE-2026-10099 is a vulnerability in XX-Net version 5.16.6 where the WebSocket frame parser in the simple_http_server.py file incorrectly handles the MASK bit in WebSocket frames. The server always reads 4 bytes as a masking key regardless of whether the MASK bit is set, which violates the WebSocket protocol (RFC 6455 Β§5.2).

Because of this, when an unmasked frame is sent (MASK bit = 0), the first 4 bytes of the payload are mistakenly consumed as the masking key, causing the rest of the payload to be XOR-decoded incorrectly. This results in corrupted application data and missing validations for RSV bits, opcode, and FIN fragmentation.


How can this vulnerability impact me? :

This vulnerability can cause corrupted application data due to improper decoding of WebSocket frames. Attackers can exploit this by sending unmasked WebSocket frames that the server misinterprets, leading to data corruption.

While the severity is considered low, the impact increases if the server is configured to allow remote connections rather than being bound to localhost. The flaw may disrupt normal WebSocket communication and potentially cause application instability or unexpected behavior.


How can this vulnerability be detected on my network or system? Can you suggest some commands?

This vulnerability involves improper handling of the WebSocket MASK bit in the WebSocket_receive_worker routine of simple_http_server.py, causing corrupted application data when unmasked WebSocket frames are processed incorrectly.

To detect this vulnerability on your system, you can monitor WebSocket traffic to identify unmasked frames being processed by the XX-Net server. Specifically, look for WebSocket frames where the MASK bit is not set but the server still reads a masking key, which leads to data corruption.

Since the issue is in the WebSocket frame parsing, you can use network packet capture tools like tcpdump or Wireshark to capture WebSocket traffic and analyze the MASK bit in the frame headers.

  • Use tcpdump to capture traffic on the relevant port (e.g., port 8085 or the port XX-Net is running on): tcpdump -i <interface> -w websocket_traffic.pcap port <port>
  • Open the capture file in Wireshark and filter for WebSocket frames.
  • Inspect WebSocket frame headers to check if the MASK bit (bit 7 of the second byte) is set or not.
  • Look for frames where the MASK bit is 0 but the server behaves as if a masking key is present, which may cause corrupted payloads.

Additionally, reviewing the server logs or debugging the simple_http_server.py script, especially the WebSocket_receive_worker function, may reveal errors or corrupted data patterns indicative of this vulnerability.


What immediate steps should I take to mitigate this vulnerability?

The primary mitigation step is to update XX-Net to a version that includes the fix for this vulnerability.

The vulnerability was fixed by adding a check for the MASK bit before reading the masking key in the WebSocket_receive_worker function of simple_http_server.py, ensuring compliance with RFC 6455 Β§5.2.

  • Upgrade XX-Net to a version that includes the fix, such as the commit merged on May 12, 2026 (pull request #14170).
  • If immediate upgrade is not possible, consider restricting access to the vulnerable service to trusted local users only (e.g., binding the server to 127.0.0.1) to reduce exposure.
  • Disable or limit remote access to the WebSocket server to prevent exploitation from untrusted networks.

Monitoring and logging WebSocket traffic for anomalies can also help detect exploitation attempts until the patch is applied.


Ask Our AI Assistant
Need more information? Ask your question to get an AI reply (Powered by our expertise)
0/70
EPSS Chart