CVE-2025-38612

5.5 MEDIUM

📋 TL;DR

This CVE describes a memory leak vulnerability in the Linux kernel's fbtft framebuffer driver. When the fbtft_framebuffer_alloc() function encounters an error after successfully allocating memory, it fails to free the pagerefs memory, potentially leading to kernel memory exhaustion. This affects Linux systems using the staging fbtft driver for small TFT displays.

💻 Affected Systems

Products:
  • Linux kernel with fbtft staging driver enabled
Versions: Linux kernel versions before the fix commits (specific versions vary by distribution)
Operating Systems: Linux distributions with vulnerable kernel versions
Default Config Vulnerable: ✅ No
Notes: Only vulnerable if CONFIG_FB_TFT is enabled and the fbtft driver is loaded/used. Most desktop/server systems don't use this driver 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 →

⚠️ Risk & Real-World Impact

🔴

Worst Case

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

🟠

Likely Case

Intermittent memory leaks during framebuffer allocation failures, potentially causing gradual performance degradation over time.

🟢

If Mitigated

Minor performance impact during driver initialization failures with proper memory management.

🌐 Internet-Facing: LOW - This is a kernel driver vulnerability requiring local access or specific hardware interaction.
🏢 Internal Only: MEDIUM - Systems using fbtft drivers for embedded displays could experience stability issues if triggered repeatedly.

🎯 Exploit Status

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

Exploitation requires triggering the specific error path in fbtft_framebuffer_alloc(), which may require hardware interaction or specific driver configuration.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Linux kernel with commits 3290f62f23fae05f2ec34085eb86dfb3648ef91f or later

Vendor Advisory: https://git.kernel.org/stable/c/3290f62f23fae05f2ec34085eb86dfb3648ef91f

Restart Required: Yes

Instructions:

1. Update Linux kernel to version containing the fix commit. 2. For distributions: Use package manager (apt/yum/dnf) to update kernel package. 3. Reboot system to load patched kernel.

🔧 Temporary Workarounds

Disable fbtft driver

all

Prevent loading of vulnerable fbtft driver module

echo 'blacklist fbtft' >> /etc/modprobe.d/blacklist-fbtft.conf
rmmod fbtft

🧯 If You Can't Patch

  • Monitor system memory usage for unusual increases in kernel memory
  • Avoid using fbtft driver or disable it if not required for system functionality

🔍 How to Verify

Check if Vulnerable:

Check if fbtft module is loaded: lsmod | grep fbtft. Check kernel version against distribution security advisories.

Check Version:

uname -r

Verify Fix Applied:

Verify kernel version includes fix commit: grep -q '3290f62f23fae05f2ec34085eb86dfb3648ef91f' /proc/version_signature (if available) or check distribution patch notes.

📡 Detection & Monitoring

Log Indicators:

  • Kernel oom-killer messages
  • Memory allocation failures in dmesg
  • fbtft driver error messages

Network Indicators:

  • None - this is a local kernel vulnerability

SIEM Query:

Search for: 'fbtft' AND ('error' OR 'fail' OR 'oom') in kernel logs

🔗 References

📤 Share & Export