CVE-2025-39923

5.5 MEDIUM

📋 TL;DR

A Linux kernel vulnerability in the Qualcomm BAM DMA driver allows early boot crashes when device tree configurations are missing required properties. This affects Linux systems using Qualcomm SoCs with improperly configured device trees, particularly those with crypto engine BAM instances.

💻 Affected Systems

Products:
  • Linux kernel with qcom-bam-dma driver
Versions: Linux kernel versions containing the vulnerable driver code prior to fixes
Operating Systems: Linux distributions using affected kernel versions
Default Config Vulnerable: ✅ No
Notes: Only vulnerable when using Qualcomm SoCs with BAM DMA and device trees missing required 'num-channels' or 'clock' properties, particularly affecting crypto engine BAM instances.

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

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

System fails to boot completely, causing denial of service and requiring physical intervention to recover.

🟠

Likely Case

Early boot crashes on systems with malformed device tree configurations, preventing normal system startup.

🟢

If Mitigated

Properly configured systems with correct device tree properties are unaffected.

🌐 Internet-Facing: LOW - This is a boot-time vulnerability that requires local system configuration issues.
🏢 Internal Only: MEDIUM - Affects internal systems with specific Qualcomm hardware and malformed device trees.

🎯 Exploit Status

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

Exploitation requires malformed device tree configuration, not remote code execution. The vulnerability manifests as boot crashes rather than traditional exploitation.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Linux kernel with commit 0ff9df758af7022d749718fb6b8385cc5693acf3 or later

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

Restart Required: Yes

Instructions:

1. Update Linux kernel to version containing the fix commit. 2. Update device tree configurations to include required 'num-channels' property for BAM instances without clocks. 3. Reboot system.

🔧 Temporary Workarounds

Fix device tree configurations

linux

Ensure all BAM DMA device tree nodes include required 'num-channels' property when 'clock' property is missing

Edit device tree source files to add: num-channels = <N>; where N is appropriate channel count

🧯 If You Can't Patch

  • Ensure all device tree configurations for BAM DMA include proper 'num-channels' property
  • Disable crypto engine BAM instances in device tree if they cannot be properly configured

🔍 How to Verify

Check if Vulnerable:

Check if system uses Qualcomm SoC with BAM DMA and examine device tree for missing 'num-channels' property in BAM nodes without clocks

Check Version:

uname -r

Verify Fix Applied:

Check kernel version includes fix commit and verify device tree has proper 'num-channels' properties

📡 Detection & Monitoring

Log Indicators:

  • Early boot crashes
  • Kernel panic messages related to BAM DMA
  • Device tree parsing errors

Network Indicators:

  • None - this is a local boot issue

SIEM Query:

Search for kernel panic logs containing 'bam_dma', 'qcom', or DMA-related error messages during boot

🔗 References

📤 Share & Export