CVE-2021-47153

7.1 HIGH

📋 TL;DR

A vulnerability in the Linux kernel's i2c-i801 driver allows an out-of-bounds memory access when the driver attempts to recover from a timed-out transaction. This occurs because the interrupt handler processes interrupts incorrectly during bus resets. Systems using affected Linux kernel versions with i2c-i801 driver enabled are vulnerable.

💻 Affected Systems

Products:
  • Linux kernel
Versions: Kernel versions before the fix commits (specific versions vary by distribution)
Operating Systems: Linux distributions using vulnerable kernel versions
Default Config Vulnerable: ⚠️ Yes
Notes: Requires i2c-i801 driver to be loaded and used. Common on systems with Intel chipsets supporting SMBus.

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

⚠️ Risk & Real-World Impact

🔴

Worst Case

Kernel memory corruption leading to system crash, privilege escalation, or arbitrary code execution in kernel context.

🟠

Likely Case

System instability, kernel panic, or denial of service due to memory access violations.

🟢

If Mitigated

Minimal impact if proper kernel hardening and memory protection mechanisms are in place.

🌐 Internet-Facing: LOW - Requires local access or ability to trigger i2c transactions.
🏢 Internal Only: MEDIUM - Local attackers or malicious processes could exploit this to cause system instability.

🎯 Exploit Status

Public PoC: ⚠️ Yes
Weaponized: LIKELY
Unauthenticated Exploit: ✅ No
Complexity: MEDIUM

Syzbot has reproduced the condition multiple times. Exploitation requires ability to trigger i2c transactions and cause timeouts.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Kernel versions containing commits: 04cc05e3716a, 09c9e79f4c10, 1f583d3813f2, b523feb7e8e4, c70e1ba2e7e6

Vendor Advisory: https://git.kernel.org/stable/c/04cc05e3716ae31b17ecdab7bc55c8170def1b8b

Restart Required: Yes

Instructions:

1. Update Linux kernel to patched version. 2. Check distribution-specific security advisories. 3. Reboot system after kernel update.

🔧 Temporary Workarounds

Disable i2c-i801 module

linux

Prevent loading of vulnerable driver if not needed

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

🧯 If You Can't Patch

  • Implement strict access controls to prevent unauthorized users from accessing i2c devices
  • Enable kernel hardening features like KASLR and memory protection

🔍 How to Verify

Check if Vulnerable:

Check kernel version and if i2c_i801 module is loaded: 'uname -r' and 'lsmod | grep i2c_i801'

Check Version:

uname -r

Verify Fix Applied:

Verify kernel version is after fix commits and test i2c functionality remains operational

📡 Detection & Monitoring

Log Indicators:

  • Kernel panic logs
  • Out-of-bounds memory access errors in dmesg
  • i2c transaction timeout messages

SIEM Query:

source="kernel" AND ("panic" OR "Oops" OR "general protection fault") AND "i2c"

🔗 References

📤 Share & Export