CVE-2022-49569

5.5 MEDIUM

📋 TL;DR

This CVE describes a NULL pointer dereference vulnerability in the Linux kernel's BCM2835 SPI driver. When an IRQ-based SPI transfer times out, the error handling function attempts to cancel DMA transfers without checking if DMA pointers are valid, causing a kernel panic. This affects systems using the BCM2835 SPI controller, particularly Raspberry Pi devices and other embedded systems with this hardware.

💻 Affected Systems

Products:
  • Linux kernel with BCM2835 SPI driver
Versions: Linux kernel versions after commit 1513ceee70f2 and before fixes in stable branches
Operating Systems: Linux distributions using affected kernel versions
Default Config Vulnerable: ⚠️ Yes
Notes: Primarily affects systems with BCM2835 SPI hardware (Raspberry Pi and similar ARM-based boards). Vulnerability only triggers when using IRQ-based SPI transfers that timeout.

📦 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

Kernel panic leading to system crash and denial of service, potentially causing data loss or system instability.

🟠

Likely Case

System crash or reboot when SPI transfers timeout under specific conditions, resulting in temporary denial of service.

🟢

If Mitigated

Minimal impact if systems don't use BCM2835 SPI controller or have proper monitoring for system stability.

🌐 Internet-Facing: LOW - Requires local access or specific SPI hardware interaction, not directly exploitable over network.
🏢 Internal Only: MEDIUM - Could be triggered by legitimate SPI operations or malicious local users with hardware access.

🎯 Exploit Status

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

Exploitation requires ability to trigger SPI transfer timeouts, typically requiring local access and hardware interaction. Not suitable for remote exploitation.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Fixed in Linux kernel stable releases via commits referenced in CVE

Vendor Advisory: https://git.kernel.org/stable/c/49ffa473218012e765682343de2052eb4c1f06a7

Restart Required: Yes

Instructions:

1. Update Linux kernel to patched version from official repositories. 2. For Raspberry Pi: Update firmware and kernel via 'sudo apt update && sudo apt full-upgrade'. 3. Reboot system to load new kernel.

🔧 Temporary Workarounds

Disable SPI controller

linux

Prevent use of vulnerable BCM2835 SPI driver if not needed

echo 'blacklist spi-bcm2835' | sudo tee /etc/modprobe.d/blacklist-spi-bcm2835.conf
sudo update-initramfs -u
sudo reboot

Use DMA transfers only

linux

Configure SPI to use DMA transfers exclusively to avoid IRQ-based timeout path

Modify SPI device tree or configuration to force DMA mode

🧯 If You Can't Patch

  • Monitor system logs for kernel panics and implement automatic recovery
  • Restrict physical and local access to systems using BCM2835 SPI hardware

🔍 How to Verify

Check if Vulnerable:

Check kernel version and if BCM2835 SPI driver is loaded: 'uname -r' and 'lsmod | grep spi_bcm2835'

Check Version:

uname -r

Verify Fix Applied:

Verify kernel version is patched and check for NULL pointer checks in driver error handling

📡 Detection & Monitoring

Log Indicators:

  • Kernel panic messages
  • NULL pointer dereference in kernel logs
  • SPI timeout errors

Network Indicators:

  • None - local hardware vulnerability

SIEM Query:

source="kernel" AND ("NULL pointer" OR "kernel panic" OR "spi_bcm2835")

🔗 References

📤 Share & Export