CVE-2021-47123

7.8 HIGH

📋 TL;DR

This CVE describes a double-free vulnerability in the Linux kernel's io_uring subsystem. It allows attackers with local access to potentially cause memory corruption, leading to system crashes or privilege escalation. All Linux systems using affected kernel versions with io_uring enabled are vulnerable.

💻 Affected Systems

Products:
  • Linux kernel
Versions: Specific affected versions not specified in CVE description, but patches exist in stable kernel trees.
Operating Systems: Linux distributions using vulnerable kernel versions
Default Config Vulnerable: ⚠️ Yes
Notes: Requires io_uring subsystem to be enabled and accessible. Most modern Linux distributions have io_uring enabled by default.

📦 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 →

⚠️ Risk & Real-World Impact

🔴

Worst Case

Local privilege escalation to root, complete system compromise, or kernel panic causing denial of service.

🟠

Likely Case

Kernel panic leading to system crash and denial of service.

🟢

If Mitigated

Limited to denial of service if proper isolation and privilege separation are implemented.

🌐 Internet-Facing: LOW - Requires local access to exploit.
🏢 Internal Only: HIGH - Any local user or process can potentially exploit this vulnerability.

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: UNKNOWN
Unauthenticated Exploit: ✅ No
Complexity: MEDIUM

Requires local access and knowledge of io_uring subsystem. Race condition exploitation adds complexity.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Patches available in stable kernel trees (commits: 1f64f5e903b9d1d157875721e02adadc9d6f0a5d, 447c19f3b5074409c794b350b10306e1da1ef4ba)

Vendor Advisory: https://git.kernel.org/stable/c/1f64f5e903b9d1d157875721e02adadc9d6f0a5d

Restart Required: Yes

Instructions:

1. Update to latest kernel version from your distribution. 2. Apply specific patches if backporting. 3. Reboot system to load new kernel.

🔧 Temporary Workarounds

Disable io_uring

linux

Remove io_uring module or disable at kernel compile time

echo 'blacklist io_uring' >> /etc/modprobe.d/blacklist.conf
rmmod io_uring

Restrict io_uring access

linux

Use capabilities or SELinux/AppArmor to restrict which users can use io_uring

setcap -r /usr/bin/your_app
Use appropriate SELinux/AppArmor policies

🧯 If You Can't Patch

  • Implement strict user privilege separation and limit local user access
  • Monitor for kernel panics and unusual system behavior, implement crash recovery mechanisms

🔍 How to Verify

Check if Vulnerable:

Check kernel version and if io_uring is enabled: 'uname -r' and 'lsmod | grep io_uring'

Check Version:

uname -r

Verify Fix Applied:

Verify kernel version is patched and check for specific commit hashes in kernel source

📡 Detection & Monitoring

Log Indicators:

  • Kernel panic messages
  • OOM killer activity
  • System crash/reboot logs

Network Indicators:

  • None - local exploit only

SIEM Query:

source="kernel" AND ("panic" OR "Oops" OR "BUG") AND "io_uring"

🔗 References

📤 Share & Export