CVE-2025-38259

7.8 HIGH

📋 TL;DR

This CVE describes a memory leak and resource management vulnerability in the Linux kernel's WCD9335 audio codec driver. The driver fails to properly free regulator supplies during error conditions or device unbinding, leading to memory leaks and unbalanced regulator enable counts. This affects systems using the WCD9335 audio codec with vulnerable Linux kernel versions.

💻 Affected Systems

Products:
  • Linux kernel with WCD9335 audio codec driver
Versions: Linux kernel versions before the fix commits (specific versions vary by distribution)
Operating Systems: Linux distributions using affected kernel versions
Default Config Vulnerable: ⚠️ Yes
Notes: Only affects systems with WCD9335 audio hardware. The vulnerability is present when the driver is loaded and used.

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

⚠️ Risk & Real-World Impact

🔴

Worst Case

Sustained exploitation could lead to kernel memory exhaustion, system instability, or denial of service through resource depletion, potentially requiring system reboot.

🟠

Likely Case

Memory leaks accumulate over time, gradually degrading system performance and stability, particularly on embedded devices with limited resources.

🟢

If Mitigated

With proper kernel hardening and resource limits, impact is limited to potential performance degradation rather than complete system failure.

🌐 Internet-Facing: LOW - This is a local kernel driver vulnerability requiring local access or kernel module loading.
🏢 Internal Only: MEDIUM - Could be exploited by malicious local users or through other kernel vulnerabilities to degrade system stability.

🎯 Exploit Status

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

Exploitation requires local access and ability to trigger driver probe errors or unbind operations. No known active exploitation.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Kernel versions containing commits: 9079db287fc3e38e040b0edeb0a25770bb679c8e, 9830ef1803a5bc50b4a984a06cf23142cd46229d, 9830ef1803a5bc50b4a984a06cf23142cd46229d, a8795f3cd289cd958f6396a1b43ba46fa8e22a2e, b86280aaa23c1c0f31bcaa600d35ddc45bc38b7a, edadaf4239c14dc8a19ea7f60b97d5524d93c29b

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

Restart Required: Yes

Instructions:

1. Update to a patched Linux kernel version from your distribution vendor. 2. Reboot the system to load the new kernel. 3. Verify the fix is applied by checking kernel version or driver behavior.

🔧 Temporary Workarounds

Disable WCD9335 driver

linux

Prevent loading of the vulnerable driver module

echo 'blacklist snd-soc-wcd9335' >> /etc/modprobe.d/blacklist.conf
rmmod snd-soc-wcd9335

Limit driver usage

linux

Restrict which users can load kernel modules

sysctl -w kernel.modules_disabled=1
echo 'kernel.modules_disabled=1' >> /etc/sysctl.conf

🧯 If You Can't Patch

  • Monitor system memory usage and kernel logs for signs of memory leaks
  • Implement regular system reboots to clear accumulated memory leaks

🔍 How to Verify

Check if Vulnerable:

Check if WCD9335 driver is loaded: lsmod | grep wcd9335. Check kernel version against patched versions.

Check Version:

uname -r

Verify Fix Applied:

Verify kernel version includes fix commits. Test driver loading/unloading while monitoring memory usage.

📡 Detection & Monitoring

Log Indicators:

  • Kernel oom-killer messages
  • Increasing memory usage in /proc/meminfo
  • Driver probe failure messages in dmesg

Network Indicators:

  • None - this is a local kernel vulnerability

SIEM Query:

source="kernel" AND ("oom-killer" OR "out of memory" OR "wcd9335" AND ("probe failed" OR "unbind"))

🔗 References

📤 Share & Export