CVE-2021-47267·Kernel vulnerability
In the Linux kernel, the following vulnerability has been resolved: usb: fix various gadget panics on 10gbps cabling usb_assign_descriptors() is called with 5 parameters, the last 4 of which are the usb_descriptor_header for: full-speed (USB1.1 - 12Mbps [including USB1.0 low-speed @ 1.5Mbps), high-speed (USB2.0 - 480Mbps), super-speed (USB3.0 - 5Gbps), super-speed-plus (USB3.1 - 10Gbps). The differences between full/high/super-speed descriptors are usually substantial (due to changes in the maximum usb block size from 64 to 512 to 1024 bytes and other differences in the specs), while the difference between 5 and 10Gbps descriptors may be as little as nothing (in many cases the same tuning is simply good enough). However if a gadget driver calls usb_assign_descriptors() with a NULL descriptor for super-speed-plus and is then used on a max 10gbps configuration, the kernel will crash with a null pointer dereference, when a 10gbps capable device port + cable + host port combination shows up. (This wouldn't happen if the gadget max-speed was set to 5gbps, but it of course defaults to the maximum, and there's no real reason to artificially limit it) The fix is to simply use the 5gbps descriptor as the 10gbps descriptor, if a 10gbps descriptor wasn't provided. Obviously this won't fix the problem if the 5gbps descriptor is also NULL, but such cases can't be so trivially solved (and any such gadgets are unlikely to be used with USB3 ports any way).
- Severity
- medium
- Software
- Kernel
- Fixed in
- 5.12.11
- Published
How likely is exploitation
FIRST's Exploit Prediction Scoring System puts the probability of this CVE being exploited in the next 30 days at <0.1% — higher than 25% of all published CVEs. EPSS is an independent forecast of exploitation, not a severity rating: it says nothing about how much damage a successful attack does, which is what a CVSS score measures.
Affected versions
From: 5.11
Until: 5.12.11
Fixed in: 5.12.11
How to fix this CVE
Update the Linux kernel to version 5.12.11 or later to resolve a null pointer dereference that occurs when USB gadget drivers fail to provide Super-Speed-Plus (10Gbps) descriptors. Systems using vulnerable kernel versions with USB 3.1 devices may experience kernel panics when high-speed USB configurations are negotiated. Apply the patch immediately if your infrastructure uses USB gadget functionality or supports USB 3.1 device connections.
sudo dnf update kernel kernel-develDefensia detects this vulnerability
How to check if you are affected
- Step 1: Check your current kernel version with 'uname -r' and compare against 5.12.11 or later
- Step 2: Verify USB gadget driver modules are loaded with 'lsmod | grep usb_f_' or 'lsmod | grep g_'
- Step 3: Search system logs for USB-related panics using 'journalctl -b | grep -i 'usb\|null pointer\|gadget' or check /var/log/kern.log for kernel oops messages
- Step 4: After patching, reboot the system and confirm the new kernel version with 'uname -r' shows 5.12.11 or later
FAQ
What is CVE-2021-47267?
This vulnerability is a kernel panic caused by missing USB Super-Speed-Plus (10Gbps) descriptor handling in USB gadget drivers. When a gadget device is used on a 10Gbps-capable USB 3.1 connection without providing proper descriptors, the kernel attempts to dereference a null pointer, causing a system crash.
Is CVE-2021-47267 being actively exploited?
No, CVE-2021-47267 is not listed as actively exploited by CISA and no public exploits are available. However, it can be triggered through normal USB device negotiation on affected systems.
What versions of Kernel are affected by CVE-2021-47267?
Linux kernel versions 5.11 through 5.12.10 are affected. The vulnerability is resolved in kernel 5.12.11 and later.
How do I check if my server is vulnerable to CVE-2021-47267?
Run 'uname -r' to see your kernel version. If it is between 5.11 and 5.12.10, your system is vulnerable. Additionally, check if USB gadget modules are loaded with 'lsmod | grep usb_f_'.
Does Defensia detect CVE-2021-47267?
Yes — Defensia's CVE advisory scanner compares installed package versions against the NVD database. If the Linux kernel is installed on a monitored server, CVE-2021-47267 will appear in your dashboard with remediation steps.
Related Kernel CVEs
References
- https://git.kernel.org/stable/c/032e288097a553db5653af552dd8035cd2a0ba96
- https://git.kernel.org/stable/c/45f9a2fe737dc0a5df270787f2231aee8985cd59
- https://git.kernel.org/stable/c/5ef23506695b01d5d56a13a092a97f2478069d75
- https://git.kernel.org/stable/c/70cd19cb5bd94bbb5bacfc9c1e4ee0071699a604
- https://git.kernel.org/stable/c/b972eff874637402ddc4a7dd11fb22538a0b6d28
Track CVEs across your fleet automatically
Defensia scans your Linux servers and tells you exactly which ones are running vulnerable versions — including CVE-2021-47267. Free for 1 server.
Get started free