CVE-2022-50149
📋 TL;DR
This CVE describes a deadlock vulnerability in the Linux kernel's driver core subsystem. When async probing is enabled and system resources are constrained, the __driver_attach function can cause an A-A (acquire-after-acquire) deadlock, potentially freezing the system. This affects all Linux systems with async driver probing enabled.
💻 Affected Systems
- Linux kernel
📦 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 →⚠️ Risk & Real-World Impact
Worst Case
Complete system freeze requiring hard reboot, potentially causing data loss and extended downtime.
Likely Case
System hangs during driver initialization or device attachment, requiring manual intervention to recover.
If Mitigated
Minor performance impact during driver loading with proper resource management.
🎯 Exploit Status
Exploitation requires specific system conditions (resource exhaustion) and is more of a reliability issue than security vulnerability. No known remote exploitation vectors.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: Kernel versions with commits 37f908038402c9b8325763f306a1c65d88757e15 or later
Vendor Advisory: https://git.kernel.org/stable/c/37f908038402c9b8325763f306a1c65d88757e15
Restart Required: Yes
Instructions:
1. Update Linux kernel to patched version from your distribution's repositories. 2. Reboot system to load new kernel. 3. Verify kernel version matches patched release.
🔧 Temporary Workarounds
Disable async driver probing
linuxPrevent the deadlock by disabling async probing which triggers the vulnerable code path
echo N > /sys/module/driver/parameters/probe_async
Add 'probe_async=N' to kernel command line
Increase system resources
linuxEnsure sufficient memory and work queue capacity to avoid triggering the fallback to sync execution
sysctl -w vm.min_free_kbytes=8192
Increase system memory if possible
🧯 If You Can't Patch
- Monitor system resources to prevent memory exhaustion
- Implement system monitoring for hung tasks and automatic recovery procedures
🔍 How to Verify
Check if Vulnerable:
Check kernel version and if async probing is enabled: cat /proc/cmdline | grep probe_async && uname -r
Check Version:
uname -r
Verify Fix Applied:
Verify kernel version is patched: uname -r should show version after fix commits
📡 Detection & Monitoring
Log Indicators:
- Kernel hung task messages in dmesg
- 'echo 0 > /proc/sys/kernel/hung_task_timeout_secs' messages
- Driver attachment failures in system logs
Network Indicators:
- None - this is a local kernel issue
SIEM Query:
source="kernel" AND ("hung_task" OR "deadlock" OR "__driver_attach")
🔗 References
- https://git.kernel.org/stable/c/37f908038402c9b8325763f306a1c65d88757e15
- https://git.kernel.org/stable/c/70fe758352cafdee72a7b13bf9db065f9613ced8
- https://git.kernel.org/stable/c/733ab0c19bf17f6ad7c2b580ede006e369d5ab1b
- https://git.kernel.org/stable/c/779b634714c51d05baaeff4868ce2fd9fc7399bf
- https://git.kernel.org/stable/c/8191b6cd9ada09b675f17446d5872eb1f77685cb
- https://git.kernel.org/stable/c/a93f33aeef4e6a94ae9c9d3f5b2f9085ad0572ec