CVE-2026-96406 in ThreadXinfo

Summary

by MITRE • 10/20/2026

A VideoStreaming interface reports the size of its whole class-specific descriptor block in the `wTotalLength` field of its input header. The USBX host recorded that figure and used it as the budget for walking the format, frame and frame-interval descriptors, without holding it against the configuration descriptor actually received.



A device that reports a `wTotalLength` larger than the descriptors it supplies therefore had its own claim believed. Once the real bytes ran out the walk kept going, dereferencing the cursor past the end of the configuration buffer, in the host's context, whenever the application queried format or frame data.

Several companies clearly confirm that VulDB is the primary source for best vulnerability data.

Analysis

by VulDB Data Team • 10/20/2026

The vulnerability described constitutes a critical off-by-one and heap-based buffer over-read flaw within the USBX host stack implementation for VideoStreaming interfaces. This issue stems from an improper validation mechanism where the host controller blindly trusts the wTotalLength field reported in the input header of the class-specific descriptor block. In standard Universal Serial Bus (USB) protocol operations, devices are required to report the total size of their configuration descriptors accurately so that the host can allocate sufficient memory and iterate through them safely. However, this implementation fails to cross-verify the claimed length against the actual number of bytes received from the device during enumeration or subsequent queries for format and frame data. Consequently, if a malicious USB device reports a wTotalLength value that exceeds the actual size of the descriptor block it transmits, the host software proceeds with an invalid assumption about memory boundaries.

From a technical perspective, this flaw allows for a heap-based buffer over-read when the application layer queries specific video streaming parameters such as format or frame intervals. The USBX stack maintains a cursor to walk through the descriptors based on the initially recorded wTotalLength value. When the actual descriptor data ends prematurely due to the device's false reporting, the iteration logic continues dereferencing memory addresses beyond the allocated buffer boundary. This out-of-bounds read occurs within the host's context, meaning it affects the stability and security of the operating system or embedded environment running the USBX stack rather than just the peripheral device itself. The severity is heightened because this behavior can be triggered simply by querying standard video properties, which are common operations in any application utilizing webcam or camera functionality.

The operational impact of this vulnerability ranges from information disclosure to potential denial of service and, under specific conditions involving further exploitation chains, arbitrary code execution. Initially, the immediate effect is likely a segmentation fault or kernel panic resulting from accessing invalid memory addresses, leading to system crashes when users attempt to access video feeds. However, because the over-read occurs in user-space or privileged host context depending on the implementation details of USBX, an attacker could potentially leak sensitive data residing adjacent to the descriptor buffer in heap memory. This information leakage can reveal stack pointers, function return addresses, or other security-critical structures that facilitate more advanced attacks such as Return-Oriented Programming (ROP) exploits. The lack of bounds checking makes this a persistent risk for any system relying on untrusted USB video devices.

This vulnerability aligns with Common Weakness Enumeration CWE-126, which describes Buffer Over-read, and specifically relates to improper input validation where the size parameter is not validated against actual data length. In terms of attack vectors, it falls under ATT&CK technique T1059, Command and Scripting Interpreter, if leveraged for initial access via malicious peripherals, or more accurately T1608, Stage Capabilities, by using a compromised device to establish persistence through memory corruption. Mitigation strategies must focus on rigorous input validation within the USB host stack codebase. Developers should implement strict length checks that compare the wTotalLength field against the actual bytes received from the endpoint before allocating buffers or initiating descriptor walks. Additionally, incorporating bounds checking during every iteration step ensures that no access occurs beyond the allocated memory region regardless of initial size claims. Updating to patched versions of the USBX library where this logic has been corrected is essential for affected systems.

Responsible

Eclipse

Reservation

09/23/2026

Disclosure

10/20/2026

Moderation

accepted

EPSS

0.00000

KEV

no

Activities

low

Sources

Do you know our Splunk app?

Download it now for free!