CVE-2024-56746

5.5 MEDIUM

📋 TL;DR

This CVE describes a memory leak vulnerability in the Linux kernel's fbdev sh7760fb driver. When the sh7760fb_alloc_mem() function fails to properly initialize certain structures, it doesn't correctly release DMA-coherent memory, leading to resource exhaustion over time. This affects Linux systems using the sh7760fb framebuffer driver, typically on SuperH architecture platforms.

💻 Affected Systems

Products:
  • Linux kernel with sh7760fb driver
Versions: Linux kernel versions containing the vulnerable sh7760fb driver code prior to the fix commits
Operating Systems: Linux distributions using affected kernel versions
Default Config Vulnerable: ✅ No
Notes: Only vulnerable if the sh7760fb driver is loaded and used. This driver is specific to SuperH architecture (SH-4) platforms, typically embedded systems.

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

⚠️ Risk & Real-World Impact

🔴

Worst Case

Sustained exploitation could lead to kernel memory exhaustion, causing system instability, denial of service, or potential kernel panic/crash.

🟠

Likely Case

Gradual memory leak over time leading to reduced system performance and eventual denial of service requiring system reboot.

🟢

If Mitigated

Minimal impact if the vulnerable driver is not loaded or the affected functionality is not used.

🌐 Internet-Facing: LOW - This is a local kernel driver vulnerability requiring local access or ability to trigger the framebuffer allocation.
🏢 Internal Only: MEDIUM - Internal users with access to trigger framebuffer operations could cause memory exhaustion affecting system stability.

🎯 Exploit Status

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

Exploitation requires ability to trigger framebuffer memory allocation failures in the sh7760fb driver, typically requiring local access or specific hardware interaction.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Fixed in kernel commits: 0d3fb3b3e9d66f7b6346e3b90bc0ff48683539ce, 29216bb390e36daeebef66abaa02d9751330252b, 3dd9df8e5f34c6fc4217a7498c1fb3c352d4afc2, 40f4326ed05a3b3537556ff2a844958b9e779a98, bad37309c8b8bf1cfc893750df0951a804009ca0

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

Restart Required: Yes

Instructions:

1. Update to a Linux kernel version containing the fix commits. 2. For distributions: Use package manager to update kernel package. 3. For custom kernels: Apply the relevant git commits. 4. Reboot system to load patched kernel.

🔧 Temporary Workarounds

Disable sh7760fb driver

linux

Prevent loading of the vulnerable framebuffer driver

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

Restrict framebuffer access

linux

Limit which users can access framebuffer devices

chmod 600 /dev/fb0
setfacl -m u:root:rw /dev/fb0

🧯 If You Can't Patch

  • Monitor system memory usage for unusual increases and implement alerting
  • Implement regular system reboots to clear accumulated memory leaks

🔍 How to Verify

Check if Vulnerable:

Check if sh7760fb driver is loaded: lsmod | grep sh7760fb AND check kernel version against affected versions

Check Version:

uname -r

Verify Fix Applied:

Verify kernel version includes fix commits: grep -r 'sh7760fb_alloc_mem' /lib/modules/$(uname -r)/source/ OR check kernel changelog for fix commits

📡 Detection & Monitoring

Log Indicators:

  • Kernel oom-killer messages
  • Memory allocation failures in dmesg
  • System instability logs

Network Indicators:

  • None - local vulnerability only

SIEM Query:

source="kernel" AND ("out of memory" OR "oom" OR "sh7760fb")

🔗 References

📤 Share & Export