CVE-2022-49519
📋 TL;DR
A double-free vulnerability in the Linux kernel's ath10k wireless driver causes kernel crashes when firmware recovery is immediately followed by system suspend. This affects Linux systems using Qualcomm Atheros QCA6174 wireless hardware with vulnerable kernel versions. The vulnerability leads to denial of service and potential system instability.
💻 Affected Systems
- Linux kernel ath10k wireless 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
Kernel panic leading to complete system crash and denial of service, requiring physical or remote reboot.
Likely Case
System instability and crashes during suspend/resume cycles when wireless firmware recovery occurs.
If Mitigated
Minor performance impact from proper synchronization between firmware recovery and suspend operations.
🎯 Exploit Status
Exploitation requires triggering wireless firmware recovery (via WMI timeout/crash) followed immediately by system suspend. This could occur during normal wireless operation under certain conditions.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: Kernel versions containing commits: 5321e5211b5d, 7eb14cb604f4, 8aa3750986ff, b72a4aff947b, c2272428090d
Vendor Advisory: https://git.kernel.org/stable/c/5321e5211b5dc873e2e3d0deb749e69ecf4dbfe5
Restart Required: No
Instructions:
1. Update Linux kernel to version containing the fix commits. 2. For distributions: Use package manager (apt/yum/dnf) to update kernel package. 3. Reboot is recommended but not strictly required for driver-level fixes.
🔧 Temporary Workarounds
Disable wireless suspend
linuxPrevent wireless interface from entering suspend mode
echo 0 > /sys/class/net/wlan0/power/control
iw dev wlan0 set power_save off
Disable firmware recovery
linuxPrevent ath10k firmware recovery mechanism
echo 0 > /sys/kernel/debug/ieee80211/phy0/ath10k/firmware_recovery
🧯 If You Can't Patch
- Disable wireless functionality on affected systems
- Implement monitoring for kernel crashes related to ath10k and establish rapid recovery procedures
🔍 How to Verify
Check if Vulnerable:
Check kernel version and if ath10k module is loaded: lsmod | grep ath10k && uname -r
Check Version:
uname -r
Verify Fix Applied:
Verify kernel version includes fix commits: git log --oneline | grep -E '5321e5211b5d|7eb14cb604f4|8aa3750986ff|b72a4aff947b|c2272428090d'
📡 Detection & Monitoring
Log Indicators:
- Kernel BUG at mm/slub.c:4150
- ath10k_halt called multiple times
- Double free crash in ath10k_htt_rx_free
Network Indicators:
- Wireless connectivity drops followed by system instability
SIEM Query:
event_source="kernel" AND (message:"kernel BUG at mm/slub.c" OR message:"ath10k_halt" OR message:"double free")
🔗 References
- https://git.kernel.org/stable/c/5321e5211b5dc873e2e3d0deb749e69ecf4dbfe5
- https://git.kernel.org/stable/c/7eb14cb604f49e58b7cf6faa87961a865a3c8649
- https://git.kernel.org/stable/c/8aa3750986ffcf73e0692db3b40dd3a8e8c0c575
- https://git.kernel.org/stable/c/b72a4aff947ba807177bdabb43debaf2c66bee05
- https://git.kernel.org/stable/c/c2272428090d0d215a3f017cbbbad731c07eee53