CVE-2021-47416
📋 TL;DR
A memory leak vulnerability in the Linux kernel's MDIO bus interface occurs when device registration fails but memory isn't properly released. This affects Linux systems using MDIO bus functionality, potentially leading to resource exhaustion over time.
💻 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
Sustained exploitation could cause kernel memory exhaustion leading to system instability, crashes, or denial of service.
Likely Case
Memory leak gradually consumes kernel resources, potentially causing performance degradation or system instability over extended periods.
If Mitigated
With proper monitoring and resource limits, impact is limited to potential performance issues rather than complete system failure.
🎯 Exploit Status
Exploitation requires triggering specific MDIO bus registration failures, making it difficult to weaponize effectively.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: Multiple stable kernel versions with fixes (see references)
Vendor Advisory: https://git.kernel.org/stable/c/064c2616234a7394867c924b5c1303974f3a4f4d
Restart Required: Yes
Instructions:
1. Update Linux kernel to patched version 2. Reboot system 3. Verify kernel version matches patched release
🔧 Temporary Workarounds
Disable MDIO bus functionality
linuxRemove or disable MDIO bus modules if not required
modprobe -r phy_mdio
echo 'blacklist phy_mdio' >> /etc/modprobe.d/blacklist.conf
🧯 If You Can't Patch
- Monitor kernel memory usage for unusual growth patterns
- Implement system resource limits and restart services periodically
🔍 How to Verify
Check if Vulnerable:
Check kernel version against patched releases in git.kernel.org references
Check Version:
uname -r
Verify Fix Applied:
Verify kernel version after update matches patched release and monitor for memory leaks
📡 Detection & Monitoring
Log Indicators:
- Kernel oom-killer messages
- Memory allocation failures in dmesg
- MDIO bus error messages
Network Indicators:
- None specific - this is a local memory management issue
SIEM Query:
source="kernel" AND ("oom" OR "memory allocation failure" OR "MDIO")
🔗 References
- https://git.kernel.org/stable/c/064c2616234a7394867c924b5c1303974f3a4f4d
- https://git.kernel.org/stable/c/0d2dd40a7be61b89a7c99dae8ee96389d27b413a
- https://git.kernel.org/stable/c/2250392d930bd0d989f24d355d6355b0150256e7
- https://git.kernel.org/stable/c/2397b9e118721292429fea8807a698e71b94795f
- https://git.kernel.org/stable/c/25e9f88c7e3cc35f5e3d3db199660d28a15df639
- https://git.kernel.org/stable/c/414bb4ead1362ef2c8592db723c017258f213988
- https://git.kernel.org/stable/c/ca6e11c337daf7925ff8a2aac8e84490a8691905
- https://git.kernel.org/stable/c/f4f502a04ee1e543825af78f47eb7785015cd9f6
- https://git.kernel.org/stable/c/064c2616234a7394867c924b5c1303974f3a4f4d
- https://git.kernel.org/stable/c/0d2dd40a7be61b89a7c99dae8ee96389d27b413a
- https://git.kernel.org/stable/c/2250392d930bd0d989f24d355d6355b0150256e7
- https://git.kernel.org/stable/c/2397b9e118721292429fea8807a698e71b94795f
- https://git.kernel.org/stable/c/25e9f88c7e3cc35f5e3d3db199660d28a15df639
- https://git.kernel.org/stable/c/414bb4ead1362ef2c8592db723c017258f213988
- https://git.kernel.org/stable/c/ca6e11c337daf7925ff8a2aac8e84490a8691905
- https://git.kernel.org/stable/c/f4f502a04ee1e543825af78f47eb7785015cd9f6