CVE-2021-47338
📋 TL;DR
This is a use-after-free vulnerability in the Linux kernel's framebuffer subsystem (fbmem). It allows attackers with local access to potentially execute arbitrary code or crash the system by deleting video modes that are still in use. Any system running an affected Linux kernel version is vulnerable.
💻 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
Local privilege escalation to kernel-level code execution, potentially leading to full system compromise.
Likely Case
Kernel panic or system crash causing denial of service.
If Mitigated
Limited impact if proper access controls prevent untrusted users from accessing framebuffer devices.
🎯 Exploit Status
Exploitation requires local access and framebuffer device permissions. The vulnerability is in kernel-space code.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: Fixed in kernel commits: 087bff9acd2ec6db3f61aceb3224bde90fe0f7f8, 0af778269a522c988ef0b4188556aba97fb420cc, 359311b85ebec7c07c3a08ae2f3def946cad33fa, d6e76469157d8f240e5dec6f8411aa8d306b1126, f193509afc7ff37a46862610c93b896044d5b693
Vendor Advisory: https://git.kernel.org/stable/c/087bff9acd2ec6db3f61aceb3224bde90fe0f7f8
Restart Required: Yes
Instructions:
1. Update Linux kernel to a version containing the fix commits. 2. Check your distribution's security advisories for specific patched versions. 3. Reboot the system after kernel update.
🔧 Temporary Workarounds
Restrict framebuffer device access
linuxLimit access to framebuffer devices (/dev/fb*) to trusted users only.
chmod 600 /dev/fb*
chown root:root /dev/fb*
🧯 If You Can't Patch
- Restrict framebuffer device permissions to root only
- Disable framebuffer devices if not needed
🔍 How to Verify
Check if Vulnerable:
Check kernel version and compare with distribution's patched versions. Vulnerable if running kernel before fix commits.
Check Version:
uname -r
Verify Fix Applied:
Verify kernel version includes the fix commits or is newer than distribution's patched version.
📡 Detection & Monitoring
Log Indicators:
- Kernel panic logs
- KASAN use-after-free reports in dmesg
- System crashes related to framebuffer
Network Indicators:
- None - local vulnerability
SIEM Query:
Search for kernel panic events or use-after-free errors in system logs
🔗 References
- https://git.kernel.org/stable/c/087bff9acd2ec6db3f61aceb3224bde90fe0f7f8
- https://git.kernel.org/stable/c/0af778269a522c988ef0b4188556aba97fb420cc
- https://git.kernel.org/stable/c/359311b85ebec7c07c3a08ae2f3def946cad33fa
- https://git.kernel.org/stable/c/d6e76469157d8f240e5dec6f8411aa8d306b1126
- https://git.kernel.org/stable/c/f193509afc7ff37a46862610c93b896044d5b693
- https://git.kernel.org/stable/c/087bff9acd2ec6db3f61aceb3224bde90fe0f7f8
- https://git.kernel.org/stable/c/0af778269a522c988ef0b4188556aba97fb420cc
- https://git.kernel.org/stable/c/359311b85ebec7c07c3a08ae2f3def946cad33fa
- https://git.kernel.org/stable/c/d6e76469157d8f240e5dec6f8411aa8d306b1126
- https://git.kernel.org/stable/c/f193509afc7ff37a46862610c93b896044d5b693