CVE-2021-47647
📋 TL;DR
This CVE describes a NULL pointer dereference vulnerability in the Linux kernel's Qualcomm IPQ8074 PCI-E clock driver. When the kernel attempts to access a missing clock parent during initialization, it causes a kernel panic and system crash. This affects Linux systems using Qualcomm IPQ8074-based hardware with vulnerable kernel versions.
💻 Affected Systems
- Linux kernel with Qualcomm IPQ8074 clock 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
Complete system crash and denial of service during boot, requiring physical intervention to restart the device.
Likely Case
System fails to boot properly, resulting in denial of service and potential data loss if the system crashes during operation.
If Mitigated
System operates normally with patched kernel or unaffected hardware.
🎯 Exploit Status
This appears to be a reliability/availability issue rather than a security exploit. The vulnerability causes a crash during system initialization, making it difficult to weaponize for traditional attacks.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: Patched in kernel commits referenced in the CVE (e.g., 41e360fa73a4c2f5b78f5ded78a5375b08c206a5)
Vendor Advisory: https://git.kernel.org/stable/c/41e360fa73a4c2f5b78f5ded78a5375b08c206a5
Restart Required: Yes
Instructions:
1. Update Linux kernel to version containing the fix. 2. For embedded devices, update firmware from vendor. 3. Reboot system to load patched kernel.
🔧 Temporary Workarounds
Disable PCI-E interface
linuxIf PCI-E functionality is not required, disable it in kernel configuration or device tree.
echo 'blacklist pcie_qcom' >> /etc/modprobe.d/blacklist.conf
update-initramfs -u
🧯 If You Can't Patch
- Use earlycon boot parameter to capture crash logs for debugging
- Ensure proper hardware configuration matches kernel expectations
🔍 How to Verify
Check if Vulnerable:
Check if system uses Qualcomm IPQ8074 hardware and vulnerable kernel version. Look for crash logs matching the stack trace.
Check Version:
uname -r
Verify Fix Applied:
Check kernel version includes the fix commit: 'git log --oneline | grep -i "41e360fa73a4c2f5b78f5ded78a5375b08c206a5"' or verify system boots without PCI-E related panics.
📡 Detection & Monitoring
Log Indicators:
- Kernel panic messages referencing clk_core_get_parent_by_index
- PCI-E initialization failures
- Data abort errors at address 0000a00000000000
Network Indicators:
- Device becoming unresponsive during boot
SIEM Query:
source="kernel" AND ("clk_core_get_parent_by_index" OR "0000a00000000000" OR "PCI-E clock oops")
🔗 References
- https://git.kernel.org/stable/c/41e360fa73a4c2f5b78f5ded78a5375b08c206a5
- https://git.kernel.org/stable/c/5a5576ad405c3c89fc9afb245c4dcc3e412b0aa9
- https://git.kernel.org/stable/c/8b89c9e68a01a19a1dd689a42aa65d545e931899
- https://git.kernel.org/stable/c/bf8f5182b8f59309809b41c1d1730ed9ca6134b1
- https://git.kernel.org/stable/c/d02b3d4a8c525068bc5cfb4341e0023d8eb82ace