CVE-2022-50288
📋 TL;DR
This CVE describes a use-after-free vulnerability in the Linux kernel's qlcnic driver. When qlcnic_dcb_enable() fails under out-of-memory conditions, it silently frees adapter->dcb while callers continue to use the pointer, potentially leading to kernel crashes or privilege escalation. This affects systems using QLogic network adapters with the vulnerable driver.
💻 Affected Systems
- Linux kernel with qlcnic driver
📦 What is this software?
Linux Kernel by Linux
The Linux Kernel is the core component of the Linux operating system, serving as the critical interface between computer hardware and software processes. As the heart of millions of servers, cloud infrastructure, embedded systems, Android devices, and IoT deployments worldwide, the Linux Kernel mana...
Learn more about Linux Kernel →Linux Kernel by Linux
The Linux Kernel is the core component of the Linux operating system, serving as the critical interface between computer hardware and software processes. As the heart of millions of servers, cloud infrastructure, embedded systems, Android devices, and IoT deployments worldwide, the Linux Kernel mana...
Learn more about Linux Kernel →Linux Kernel by Linux
The Linux Kernel is the core component of the Linux operating system, serving as the critical interface between computer hardware and software processes. As the heart of millions of servers, cloud infrastructure, embedded systems, Android devices, and IoT deployments worldwide, the Linux Kernel mana...
Learn more about Linux Kernel →Linux Kernel by Linux
The Linux Kernel is the core component of the Linux operating system, serving as the critical interface between computer hardware and software processes. As the heart of millions of servers, cloud infrastructure, embedded systems, Android devices, and IoT deployments worldwide, the Linux Kernel mana...
Learn more about Linux Kernel →Linux Kernel by Linux
The Linux Kernel is the core component of the Linux operating system, serving as the critical interface between computer hardware and software processes. As the heart of millions of servers, cloud infrastructure, embedded systems, Android devices, and IoT deployments worldwide, the Linux Kernel mana...
Learn more about Linux Kernel →Linux Kernel by Linux
The Linux Kernel is the core component of the Linux operating system, serving as the critical interface between computer hardware and software processes. As the heart of millions of servers, cloud infrastructure, embedded systems, Android devices, and IoT deployments worldwide, the Linux Kernel mana...
Learn more about Linux Kernel →Linux Kernel by Linux
The Linux Kernel is the core component of the Linux operating system, serving as the critical interface between computer hardware and software processes. As the heart of millions of servers, cloud infrastructure, embedded systems, Android devices, and IoT deployments worldwide, the Linux Kernel mana...
Learn more about Linux Kernel →Linux Kernel by Linux
The Linux Kernel is the core component of the Linux operating system, serving as the critical interface between computer hardware and software processes. As the heart of millions of servers, cloud infrastructure, embedded systems, Android devices, and IoT deployments worldwide, the Linux Kernel mana...
Learn more about Linux Kernel →Linux Kernel by Linux
The Linux Kernel is the core component of the Linux operating system, serving as the critical interface between computer hardware and software processes. As the heart of millions of servers, cloud infrastructure, embedded systems, Android devices, and IoT deployments worldwide, the Linux Kernel mana...
Learn more about Linux Kernel →⚠️ Risk & Real-World Impact
Worst Case
Kernel panic leading to system crash, or potential privilege escalation to kernel mode allowing full system compromise.
Likely Case
System instability, kernel crashes, or denial of service when the driver encounters memory pressure conditions.
If Mitigated
Minor performance impact or driver failure without system compromise if proper error handling is in place.
🎯 Exploit Status
Exploitation requires local access and ability to trigger the vulnerable code path under memory pressure conditions. No public exploits are known.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: Linux kernel versions containing the fix commits (e.g., 13a7c8964afcd8ca43c0b6001ebb0127baa95362 and related)
Vendor Advisory: https://git.kernel.org/stable/c/13a7c8964afcd8ca43c0b6001ebb0127baa95362
Restart Required: No
Instructions:
1. Update Linux kernel to version containing the fix commits. 2. For distributions: Use package manager to update kernel package. 3. Rebuild kernel if using custom kernel. 4. No reboot required for live kernel updates if supported.
🔧 Temporary Workarounds
Disable qlcnic driver
allPrevent loading of the vulnerable qlcnic driver if QLogic adapters are not needed
echo 'blacklist qlcnic' >> /etc/modprobe.d/blacklist.conf
rmmod qlcnic
Limit memory pressure
allConfigure system to reduce likelihood of out-of-memory conditions triggering the vulnerability
sysctl -w vm.overcommit_memory=2
sysctl -w vm.overcommit_ratio=80
🧯 If You Can't Patch
- Restrict local user access to systems using QLogic adapters
- Implement strict memory limits and monitoring to prevent OOM conditions
🔍 How to Verify
Check if Vulnerable:
Check kernel version and if qlcnic module is loaded: uname -r && lsmod | grep qlcnic
Check Version:
uname -r
Verify Fix Applied:
Verify kernel version includes fix commits or check with distribution's security advisory
📡 Detection & Monitoring
Log Indicators:
- Kernel oops messages
- System crashes or panics
- qlcnic driver error messages in dmesg
Network Indicators:
- Unusual network adapter behavior if using QLogic hardware
SIEM Query:
source="kernel" AND ("qlcnic" OR "use-after-free" OR "kernel panic")
🔗 References
- https://git.kernel.org/stable/c/13a7c8964afcd8ca43c0b6001ebb0127baa95362
- https://git.kernel.org/stable/c/36999236f0b12d5de21a6f40e93b570727b9ceb2
- https://git.kernel.org/stable/c/513787ff9a331b461115e8a145a983d650a84fcb
- https://git.kernel.org/stable/c/8df1dc04ce0e4c03b51a756749c250a9cb17d707
- https://git.kernel.org/stable/c/8f97eeb02a553cdc78c83a0596448a370e1518c4
- https://git.kernel.org/stable/c/95df720e64a6409d8152827a776c43f615e3321a
- https://git.kernel.org/stable/c/a2a694e6edbdb3efb34e1613a31fdcf6cf444a55
- https://git.kernel.org/stable/c/d12a7510293d3370b234b0b7c5eda33e58786768