CVE-2016-20022
Description
In the Linux kernel before 4.8, usb_parse_endpoint in drivers/usb/core/config.c does not validate the wMaxPacketSize field of an endpoint descriptor. NOTE: This vulnerability only affects products that are no longer supported by the supplier.
AI Insight
LLM-synthesized narrative grounded in this CVE's description and references.
Lack of wMaxPacketSize validation in Linux kernel USB subsystem before 4.8 allows local attackers to cause a denial of service via panic.
Vulnerability
Description
The Linux kernel before version 4.8 contains a vulnerability in the USB subsystem, specifically in usb_parse_endpoint within drivers/usb/core/config.c. The function fails to validate the wMaxPacketSize field of USB endpoint descriptors, allowing a malicious USB device to advertise an excessively large maximum packet size. This oversight can lead to memory corruption or resource exhaustion when the kernel attempts to allocate resources based on the invalid value [1].
Exploitation
Scenario
An attacker with physical access to the system can exploit this by connecting a crafted USB device, such as a HID keyboard emulated via tools like Facedancer and UMAP. For example, when the OHCI (USB 1.1) controller driver processes a device claiming to be a HID keyboard with a wMaxPacketSize over 4095, the driver fails to reserve bandwidth properly. This can trigger a kernel panic later when the device is removed, due to a null pointer dereference in a linked list of endpoint descriptors [2].
Impact
Successful exploitation results in a denial of service (system crash) via kernel panic. The CVE description and references note that no pointer disclosure or privilege escalation is achieved, but the impact is local system unavailability. Systems using OHCI controllers (common in USB 1.1/2.0 hardware) are affected, while xHCI (USB 3.0) controllers are immune to this specific bug [2].
Mitigation
The fix was committed in commit aed9d65ac3278d4febd8665bd7db59ef53e825fe to the Linux kernel, which adds validation tables for maximum allowed packet sizes per endpoint type and speed (low, full, high, super speed). This ensures that wMaxPacketSize is checked against legal maximums, rejecting invalid descriptors [1]. Users should upgrade to Linux kernel 4.8 or later. The vendor notes that this vulnerability only affects products that are no longer supported, implying that long-term supported kernel branches may already include or backport the fix.
AI Insight generated on May 20, 2026. Synthesized from this CVE's description and the cited reference URLs; citations are validated against the source bundle.
Affected products
7- Range: v2.6.12-rc2, v2.6.12-rc3, v2.6.12-rc4, …
- osv-coords6 versionspkg:rpm/suse/kernel-default&distro=SUSE%20Linux%20Enterprise%20Server%2011%20SP4%20LTSS%20EXTREME%20COREpkg:rpm/suse/kernel-ec2&distro=SUSE%20Linux%20Enterprise%20Server%2011%20SP4%20LTSS%20EXTREME%20COREpkg:rpm/suse/kernel-source&distro=SUSE%20Linux%20Enterprise%20Server%2011%20SP4%20LTSS%20EXTREME%20COREpkg:rpm/suse/kernel-syms&distro=SUSE%20Linux%20Enterprise%20Server%2011%20SP4%20LTSS%20EXTREME%20COREpkg:rpm/suse/kernel-trace&distro=SUSE%20Linux%20Enterprise%20Server%2011%20SP4%20LTSS%20EXTREME%20COREpkg:rpm/suse/kernel-xen&distro=SUSE%20Linux%20Enterprise%20Server%2011%20SP4%20LTSS%20EXTREME%20CORE
< 3.0.101-108.159.1+ 5 more
- (no CPE)range: < 3.0.101-108.159.1
- (no CPE)range: < 3.0.101-108.159.1
- (no CPE)range: < 3.0.101-108.159.1
- (no CPE)range: < 3.0.101-108.159.1
- (no CPE)range: < 3.0.101-108.159.1
- (no CPE)range: < 3.0.101-108.159.1
Patches
2c8d2bc9bc39eaed9d65ac327Vulnerability mechanics
Generated on May 9, 2026. Inputs: CWE entries + fix-commit diffs from this CVE's patches. Citations validated against bundle.
References
3News mentions
0No linked articles in our index yet.