CVE-2022-50172
📋 TL;DR
This CVE describes a memory leak vulnerability in the Linux kernel's mt76 wireless driver. When the mt76u_bulk_msg function fails in the __mt76x02u_mcu_send_msg routine, the skb (socket buffer) is not properly freed, leading to potential memory exhaustion. This affects systems using MediaTek MT76x02U USB wireless chipsets.
💻 Affected Systems
- Linux kernel with mt76 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 →⚠️ Risk & Real-World Impact
Worst Case
Sustained exploitation could lead to kernel memory exhaustion, causing system instability, denial of service, or potential kernel crashes.
Likely Case
Intermittent wireless connectivity issues or gradual performance degradation due to memory pressure from unreleased buffers.
If Mitigated
Minimal impact with proper memory management and monitoring in place.
🎯 Exploit Status
Exploitation requires triggering specific failure conditions in the wireless driver, typically requiring local access or wireless chipset manipulation.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: Fixed in kernel commits: 2f53ba46d8c97aca681adbe5098e1f84580c446d, 3ad958bc488e3ecb0207d31621c00efb86f17482, cffd93411575afd987788e2ec3cb8eaff70f0215, da1ab462b96c5d47a0755aec957bae3d685538c5, f1609c4f4a21777e081b36596224802b85052ad9
Vendor Advisory: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=2f53ba46d8c97aca681adbe5098e1f84580c446d
Restart Required: Yes
Instructions:
1. Update Linux kernel to version containing the fix commits. 2. For distributions: Use package manager (apt/yum/dnf) to update kernel. 3. Reboot system to load new kernel.
🔧 Temporary Workarounds
Disable vulnerable driver
linuxBlacklist or disable the mt76 driver if not needed
echo 'blacklist mt76' >> /etc/modprobe.d/blacklist.conf
rmmod mt76
🧯 If You Can't Patch
- Monitor system memory usage for unusual patterns
- Restrict physical access to USB ports to prevent unauthorized wireless adapter connections
🔍 How to Verify
Check if Vulnerable:
Check kernel version and if mt76 driver is loaded: lsmod | grep mt76 && uname -r
Check Version:
uname -r
Verify Fix Applied:
Verify kernel version includes fix commits or is newer than vulnerable versions
📡 Detection & Monitoring
Log Indicators:
- Kernel oops messages
- Memory allocation failures in dmesg
- Wireless connectivity errors
Network Indicators:
- Intermittent wireless disconnections
- Unusual wireless adapter behavior
SIEM Query:
source="kernel" AND ("mt76" OR "memory allocation failure")
🔗 References
- https://git.kernel.org/stable/c/2f53ba46d8c97aca681adbe5098e1f84580c446d
- https://git.kernel.org/stable/c/3ad958bc488e3ecb0207d31621c00efb86f17482
- https://git.kernel.org/stable/c/cffd93411575afd987788e2ec3cb8eaff70f0215
- https://git.kernel.org/stable/c/da1ab462b96c5d47a0755aec957bae3d685538c5
- https://git.kernel.org/stable/c/f1609c4f4a21777e081b36596224802b85052ad9