CVE-2024-50232

5.5 MEDIUM

📋 TL;DR

A division by zero vulnerability exists in the Linux kernel's AD7124 ADC driver when setting channel output data rates. This can cause kernel panics or system crashes on devices using this driver. Systems running vulnerable Linux kernel versions with AD7124 hardware are affected.

💻 Affected Systems

Products:
  • Linux kernel
Versions: Specific affected versions not specified in CVE, but patches exist in stable kernel trees
Operating Systems: Linux
Default Config Vulnerable: ✅ No
Notes: Only vulnerable if AD7124 ADC driver is loaded and hardware is present. Most standard Linux distributions won't have this loaded 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 →

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 requiring physical reboot of affected hardware.

🟠

Likely Case

System instability or crash when applications attempt to configure AD7124 ADC channels with zero values.

🟢

If Mitigated

No impact if the vulnerable driver is not loaded or AD7124 hardware is not present.

🌐 Internet-Facing: LOW - This requires local access to the system or ability to trigger the vulnerable driver through other means.
🏢 Internal Only: MEDIUM - Could affect industrial control systems, embedded devices, or servers with AD7124 hardware.

🎯 Exploit Status

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

Requires ability to write to the vulnerable iio interface, typically requiring local access or compromised application with appropriate permissions.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Patches available in stable kernel trees (see references)

Vendor Advisory: https://git.kernel.org/stable/c/0ac0beb4235a9a474f681280a3bd4e2a5bb66569

Restart Required: Yes

Instructions:

1. Update to a patched Linux kernel version containing the fix. 2. Reboot the system to load the new kernel. 3. Verify the AD7124 driver is functioning correctly.

🔧 Temporary Workarounds

Unload AD7124 driver

linux

Remove the vulnerable kernel module if AD7124 hardware is not required

sudo rmmod ad7124

Blacklist AD7124 driver

linux

Prevent the driver from loading at boot

echo 'blacklist ad7124' | sudo tee /etc/modprobe.d/blacklist-ad7124.conf

🧯 If You Can't Patch

  • Restrict access to iio device files to trusted users only
  • Monitor system logs for kernel panic events related to AD7124

🔍 How to Verify

Check if Vulnerable:

Check if AD7124 driver is loaded: lsmod | grep ad7124

Check Version:

uname -r

Verify Fix Applied:

Check kernel version against patched versions in references, and verify driver loads without issues

📡 Detection & Monitoring

Log Indicators:

  • Kernel panic messages
  • Division by zero errors in kernel logs
  • System crash/reboot events

Network Indicators:

  • None - this is a local vulnerability

SIEM Query:

source="kernel" AND ("division by zero" OR "panic" OR "ad7124")

🔗 References

📤 Share & Export