CVE-2021-47609
📋 TL;DR
This CVE describes a buffer overflow vulnerability in the Linux kernel's SCPI genpd driver. An attacker could exploit this to cause a kernel panic or potentially execute arbitrary code with kernel privileges. Systems running vulnerable Linux kernel versions with ARM SCPI firmware support are affected.
💻 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 →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 arbitrary code execution with kernel privileges, enabling full system compromise.
Likely Case
Kernel panic causing denial of service through system crash or instability.
If Mitigated
Limited impact due to kernel hardening features like KASLR and SMEP/SMAP reducing exploit reliability.
🎯 Exploit Status
Requires local access or ability to influence device tree configuration. No public exploits known.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: Kernel versions containing the fix commits: 4694b1ec425a2d20d6f8ca3db594829fdf5f2672 and related
Vendor Advisory: https://git.kernel.org/stable/c/4694b1ec425a2d20d6f8ca3db594829fdf5f2672
Restart Required: Yes
Instructions:
1. Update Linux kernel to patched version from your distribution. 2. Rebuild kernel if compiling from source with the fix commits. 3. Reboot system to load new kernel.
🔧 Temporary Workarounds
Disable SCPI support
linuxDisable ARM SCPI protocol support in kernel configuration
Disable CONFIG_ARM_SCPI_PROTOCOL in kernel config and rebuild
🧯 If You Can't Patch
- Restrict local access to systems to prevent potential exploitation
- Implement kernel hardening features like KASLR, SMEP, SMAP to reduce exploit reliability
🔍 How to Verify
Check if Vulnerable:
Check kernel version and if SCPI support is enabled: grep CONFIG_ARM_SCPI_PROTOCOL /boot/config-$(uname -r)
Check Version:
uname -r
Verify Fix Applied:
Verify kernel version is newer than fix commits and check kernel logs for successful boot
📡 Detection & Monitoring
Log Indicators:
- Kernel panic messages
- System crash/reboot logs
- SCPI driver initialization errors
Network Indicators:
- None - local vulnerability
SIEM Query:
Search for kernel panic events or unexpected system reboots
🔗 References
- https://git.kernel.org/stable/c/4694b1ec425a2d20d6f8ca3db594829fdf5f2672
- https://git.kernel.org/stable/c/639901b9429a3195e0fead981ed74b51f5f31538
- https://git.kernel.org/stable/c/7e8645ca2c0046f7cd2f0f7d569fc036c8abaedb
- https://git.kernel.org/stable/c/802a1a8501563714a5fe8824f4ed27fec04a0719
- https://git.kernel.org/stable/c/865ed67ab955428b9aa771d8b4f1e4fb7fd08945
- https://git.kernel.org/stable/c/976389cbb16cee46847e5d06250a3a0b5506781e
- https://git.kernel.org/stable/c/f0f484714f35d24ffa0ecb4afe3df1c5b225411d
- https://git.kernel.org/stable/c/4694b1ec425a2d20d6f8ca3db594829fdf5f2672
- https://git.kernel.org/stable/c/639901b9429a3195e0fead981ed74b51f5f31538
- https://git.kernel.org/stable/c/7e8645ca2c0046f7cd2f0f7d569fc036c8abaedb
- https://git.kernel.org/stable/c/802a1a8501563714a5fe8824f4ed27fec04a0719
- https://git.kernel.org/stable/c/865ed67ab955428b9aa771d8b4f1e4fb7fd08945
- https://git.kernel.org/stable/c/976389cbb16cee46847e5d06250a3a0b5506781e
- https://git.kernel.org/stable/c/f0f484714f35d24ffa0ecb4afe3df1c5b225411d