CVE-2021-47323
📋 TL;DR
A use-after-free vulnerability in the Linux kernel's sc520_wdt watchdog driver allows potential memory corruption when the module is unloaded. This affects Linux systems using the SC520 watchdog timer hardware. Attackers with local access could potentially escalate privileges or cause denial of service.
💻 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 →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
Local privilege escalation to kernel-level access, potentially leading to full system compromise, data theft, or persistent backdoor installation.
Likely Case
Kernel panic or system crash causing denial of service, requiring physical or remote console access to reboot.
If Mitigated
Limited to denial of service if kernel hardening features like KASLR and SMAP/SMEP are enabled and effective.
🎯 Exploit Status
Requires local access and ability to load/unload kernel modules. Timing window for exploitation is narrow.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: Kernel versions containing commits 0015581a79bbf8e521f85dddb7d3e4a66b9f51d4 or later
Vendor Advisory: https://git.kernel.org/stable/c/0015581a79bbf8e521f85dddb7d3e4a66b9f51d4
Restart Required: Yes
Instructions:
1. Update kernel to patched version from your distribution's repositories. 2. Reboot system to load new kernel. 3. Verify sc520_wdt module is not loaded if not needed.
🔧 Temporary Workarounds
Disable sc520_wdt module
linuxPrevent loading of vulnerable kernel module
echo 'blacklist sc520_wdt' >> /etc/modprobe.d/blacklist.conf
rmmod sc520_wdt
Restrict module loading
linuxPrevent unauthorized kernel module operations
sysctl -w kernel.modules_disabled=1
🧯 If You Can't Patch
- Ensure sc520_wdt module is not loaded (check with lsmod).
- Implement strict access controls to prevent local users from loading/unloading kernel modules.
🔍 How to Verify
Check if Vulnerable:
Check if sc520_wdt module is loaded: lsmod | grep sc520_wdt. If loaded and kernel version is unpatched, system is vulnerable.
Check Version:
uname -r
Verify Fix Applied:
Check kernel version includes fix commits or is newer than vulnerable versions. Verify sc520_wdt module uses del_timer_sync() in wdt_turnoff().
📡 Detection & Monitoring
Log Indicators:
- Kernel oops messages
- System crashes/panics after module operations
- Audit logs showing module loading/unloading
Network Indicators:
- None - local vulnerability only
SIEM Query:
source="kernel" AND ("sc520_wdt" OR "use-after-free" OR "general protection fault")
🔗 References
- https://git.kernel.org/stable/c/0015581a79bbf8e521f85dddb7d3e4a66b9f51d4
- https://git.kernel.org/stable/c/2aef07017fae21c3d8acea9656b10e3b9c0f1e04
- https://git.kernel.org/stable/c/522e75ed63f67e815d4ec0deace67df22d9ce78e
- https://git.kernel.org/stable/c/7c56c5508dc20a6b133bc669fc34327a6711c24c
- https://git.kernel.org/stable/c/90b7c141132244e8e49a34a4c1e445cce33e07f4
- https://git.kernel.org/stable/c/a173e3b62cf6dd3c4a0a10c8a82eedfcae81a566
- https://git.kernel.org/stable/c/b3c41ea5bc34d8c7b19e230d80e0e555c6f5057d
- https://git.kernel.org/stable/c/b4565a8a2d6bffb05bfbec11399d261ec16fe373
- https://git.kernel.org/stable/c/f0feab82f6a0323f54d85e8b512a2be64f83648a
- https://git.kernel.org/stable/c/0015581a79bbf8e521f85dddb7d3e4a66b9f51d4
- https://git.kernel.org/stable/c/2aef07017fae21c3d8acea9656b10e3b9c0f1e04
- https://git.kernel.org/stable/c/522e75ed63f67e815d4ec0deace67df22d9ce78e
- https://git.kernel.org/stable/c/7c56c5508dc20a6b133bc669fc34327a6711c24c
- https://git.kernel.org/stable/c/90b7c141132244e8e49a34a4c1e445cce33e07f4
- https://git.kernel.org/stable/c/a173e3b62cf6dd3c4a0a10c8a82eedfcae81a566
- https://git.kernel.org/stable/c/b3c41ea5bc34d8c7b19e230d80e0e555c6f5057d
- https://git.kernel.org/stable/c/b4565a8a2d6bffb05bfbec11399d261ec16fe373
- https://git.kernel.org/stable/c/f0feab82f6a0323f54d85e8b512a2be64f83648a