CVE-2025-37943
NoneCVSS
—
EPSS
0.3%
Published
May 20, 2025
CISA due date
—
Cloudanix analysis
A flaw in certain Linux Wi-Fi drivers could let attackers crash computers or run malicious code by sending specially crafted wireless network traffic, so install the latest system updates promptly.
- Exploitation
- Adjacent Network
- Attacker needs
- None
- Complexity
- Moderate
- Impact
- Data Tampering
- Component
- OS kernel
- Class
- Memory Corruption
- Remediation
- Patch
- Effort
- Low
- Patch risk
- Low
What it actually does
Missing length sanity check in ath12k_dp_rx_h_undecap_nwifi allows hardware-supplied packets exceeding native Wi-Fi header maximum to trigger out-of-bounds reads/writes and memory corruption during DP_RX_DECAP_TYPE_NATIVE_WIFI processing.
Why it matters to the business
Affected Ubuntu Linux systems with Qualcomm ath12k Wi-Fi hardware face elevated risk of crashes, data corruption, or potential local privilege escalation; broad package footprint across LTS releases and moderate ecosystem prevalence increase patching urgency despite low EPSS.
How an attack unfolds
Attacker crafts 802.11 frames with oversized native Wi-Fi headers and delivers them to a vulnerable receiver; the ath12k driver skips validation, performs invalid header modification, and corrupts adjacent kernel memory, enabling follow-on attacks consistent with observed Advanced Spyware Campaign patterns and related kernel privilege-escalation techniques.
How to fix it
Upgrade to the listed fixed package versions for each distribution, for example linux 5.4.0-9.12 on Ubuntu 20.04 LTS, linux 4.15.0-1007.9 on Ubuntu 18.04 LTS, linux 4.4.0-2.16 on Ubuntu 16.04 LTS, and equivalent updates for linux-aws, linux-azure, linux-gcp, linux-hwe, linux-kvm, linux-oracle and related meta-packages.
How to confirm the fix worked
Confirm updated kernel versions match the fixed releases, review ath12k source for presence of the added length sanity check before SKB processing, and test Wi-Fi receive paths with boundary-case frames.
Typical attack path
- Identify systems running vulnerable ath12k driver versions on affected Ubuntu kernels
- Position within Wi-Fi range or compromise an upstream access point to inject frames
- Transmit specially crafted packets exceeding maximum native Wi-Fi header length
- Trigger undecap path to cause memory corruption and gain code execution or denial of service
How to detect it
Review kernel logs for ath12k receive path warnings or panics, inspect SKB handling around undecap native Wi-Fi functions, and correlate with unusual wireless frame sizes or memory corruption events on systems exposed to Advanced Spyware Campaign activity.
What your security team should do
- Apply kernel updates to the exact fixed versions on all affected Ubuntu LTS systems within the next maintenance window
- Prioritize hosts with ath12k hardware and exposure to untrusted Wi-Fi networks given listed threat actor activity
- Monitor EPSS trend and re-evaluate if score increases or new exploitation reports appear
The record
In the Linux kernel, the following vulnerability has been resolved: wifi: ath12k: Fix invalid data access in ath12k_dp_rx_h_undecap_nwifi In certain cases, hardware might provide packets with a length greater than the maximum native Wi-Fi header length. This can lead to accessing and modifying fields in the header within the ath12k_dp_rx_h_undecap_nwifi function for DP_RX_DECAP_TYPE_NATIVE_WIFI decap type and potentially resulting in invalid data access and memory corruption. Add a sanity check before processing the SKB to prevent invalid data access in the undecap native Wi-Fi function for the DP_RX_DECAP_TYPE_NATIVE_WIFI decap type. Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.3.1-00173-QCAHKSWPL_SILICONZ-1
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| AlmaLinux:9 | kernel | 0 | 5.14.0-570.21.1.el9_6 |
| AlmaLinux:9 | kernel-64k | 0 | 5.14.0-570.21.1.el9_6 |
| AlmaLinux:9 | kernel-64k-core | 0 | 5.14.0-570.21.1.el9_6 |
| AlmaLinux:9 | kernel-64k-debug | 0 | 5.14.0-570.21.1.el9_6 |
| AlmaLinux:9 | kernel-64k-debug-core | 0 | 5.14.0-570.21.1.el9_6 |
| AlmaLinux:9 | kernel-64k-debug-devel | 0 | 5.14.0-570.21.1.el9_6 |
| AlmaLinux:9 | kernel-64k-debug-devel-matched | 0 | 5.14.0-570.21.1.el9_6 |
| AlmaLinux:9 | kernel-64k-debug-modules | 0 | 5.14.0-570.21.1.el9_6 |
| AlmaLinux:9 | kernel-64k-debug-modules-core | 0 | 5.14.0-570.21.1.el9_6 |
| AlmaLinux:9 | kernel-64k-debug-modules-extra | 0 | 5.14.0-570.21.1.el9_6 |
| AlmaLinux:9 | kernel-64k-devel | 0 | 5.14.0-570.21.1.el9_6 |
| AlmaLinux:9 | kernel-64k-devel-matched | 0 | 5.14.0-570.21.1.el9_6 |
| AlmaLinux:9 | kernel-64k-modules | 0 | 5.14.0-570.21.1.el9_6 |
| AlmaLinux:9 | kernel-64k-modules-core | 0 | 5.14.0-570.21.1.el9_6 |
| AlmaLinux:9 | kernel-64k-modules-extra | 0 | 5.14.0-570.21.1.el9_6 |
| AlmaLinux:9 | kernel-abi-stablelists | 0 | 5.14.0-570.21.1.el9_6 |
| AlmaLinux:9 | kernel-core | 0 | 5.14.0-570.21.1.el9_6 |
| AlmaLinux:9 | kernel-cross-headers | 0 | 5.14.0-570.21.1.el9_6 |
| AlmaLinux:9 | kernel-debug | 0 | 5.14.0-570.21.1.el9_6 |
| AlmaLinux:9 | kernel-debug-core | 0 | 5.14.0-570.21.1.el9_6 |
| AlmaLinux:9 | kernel-debug-devel | 0 | 5.14.0-570.21.1.el9_6 |
| AlmaLinux:9 | kernel-debug-devel-matched | 0 | 5.14.0-570.21.1.el9_6 |
| AlmaLinux:9 | kernel-debug-modules | 0 | 5.14.0-570.21.1.el9_6 |
| AlmaLinux:9 | kernel-debug-modules-core | 0 | 5.14.0-570.21.1.el9_6 |
| AlmaLinux:9 | kernel-debug-modules-extra | 0 | 5.14.0-570.21.1.el9_6 |
| AlmaLinux:9 | kernel-debug-uki-virt | 0 | 5.14.0-570.21.1.el9_6 |
| AlmaLinux:9 | kernel-devel | 0 | 5.14.0-570.21.1.el9_6 |
| AlmaLinux:9 | kernel-devel-matched | 0 | 5.14.0-570.21.1.el9_6 |
| AlmaLinux:9 | kernel-doc | 0 | 5.14.0-570.21.1.el9_6 |
| AlmaLinux:9 | kernel-headers | 0 | 5.14.0-570.21.1.el9_6 |
| AlmaLinux:9 | kernel-modules | 0 | 5.14.0-570.21.1.el9_6 |
| AlmaLinux:9 | kernel-modules-core | 0 | 5.14.0-570.21.1.el9_6 |
| AlmaLinux:9 | kernel-modules-extra | 0 | 5.14.0-570.21.1.el9_6 |
| AlmaLinux:9 | kernel-rt | 0 | 5.14.0-570.21.1.el9_6 |
| AlmaLinux:9 | kernel-rt-64k | 0 | 5.14.0-570.21.1.el9_6 |
| AlmaLinux:9 | kernel-rt-64k-core | 0 | 5.14.0-570.21.1.el9_6 |
| AlmaLinux:9 | kernel-rt-64k-debug | 0 | 5.14.0-570.21.1.el9_6 |
| AlmaLinux:9 | kernel-rt-64k-debug-core | 0 | 5.14.0-570.21.1.el9_6 |
| AlmaLinux:9 | kernel-rt-64k-debug-devel | 0 | 5.14.0-570.21.1.el9_6 |
| AlmaLinux:9 | kernel-rt-64k-debug-modules | 0 | 5.14.0-570.21.1.el9_6 |
| AlmaLinux:9 | kernel-rt-64k-debug-modules-core | 0 | 5.14.0-570.21.1.el9_6 |
| AlmaLinux:9 | kernel-rt-64k-debug-modules-extra | 0 | 5.14.0-570.21.1.el9_6 |
| AlmaLinux:9 | kernel-rt-64k-devel | 0 | 5.14.0-570.21.1.el9_6 |
| AlmaLinux:9 | kernel-rt-64k-modules | 0 | 5.14.0-570.21.1.el9_6 |
| AlmaLinux:9 | kernel-rt-64k-modules-core | 0 | 5.14.0-570.21.1.el9_6 |
| AlmaLinux:9 | kernel-rt-64k-modules-extra | 0 | 5.14.0-570.21.1.el9_6 |
| AlmaLinux:9 | kernel-rt-core | 0 | 5.14.0-570.21.1.el9_6 |
| AlmaLinux:9 | kernel-rt-debug | 0 | 5.14.0-570.21.1.el9_6 |
| AlmaLinux:9 | kernel-rt-debug-core | 0 | 5.14.0-570.21.1.el9_6 |
| AlmaLinux:9 | kernel-rt-debug-devel | 0 | 5.14.0-570.21.1.el9_6 |
| AlmaLinux:9 | kernel-rt-debug-kvm | 0 | 5.14.0-570.21.1.el9_6 |
| AlmaLinux:9 | kernel-rt-debug-modules | 0 | 5.14.0-570.21.1.el9_6 |
| AlmaLinux:9 | kernel-rt-debug-modules-core | 0 | 5.14.0-570.21.1.el9_6 |
| AlmaLinux:9 | kernel-rt-debug-modules-extra | 0 | 5.14.0-570.21.1.el9_6 |
| AlmaLinux:9 | kernel-rt-devel | 0 | 5.14.0-570.21.1.el9_6 |
| AlmaLinux:9 | kernel-rt-kvm | 0 | 5.14.0-570.21.1.el9_6 |
| AlmaLinux:9 | kernel-rt-modules | 0 | 5.14.0-570.21.1.el9_6 |
| AlmaLinux:9 | kernel-rt-modules-core | 0 | 5.14.0-570.21.1.el9_6 |
| AlmaLinux:9 | kernel-rt-modules-extra | 0 | 5.14.0-570.21.1.el9_6 |
| AlmaLinux:9 | kernel-tools | 0 | 5.14.0-570.21.1.el9_6 |
| AlmaLinux:9 | kernel-tools-libs | 0 | 5.14.0-570.21.1.el9_6 |
| AlmaLinux:9 | kernel-tools-libs-devel | 0 | 5.14.0-570.21.1.el9_6 |
| AlmaLinux:9 | kernel-uki-virt | 0 | 5.14.0-570.21.1.el9_6 |
| AlmaLinux:9 | kernel-uki-virt-addons | 0 | 5.14.0-570.21.1.el9_6 |
| AlmaLinux:9 | kernel-zfcpdump | 0 | 5.14.0-570.21.1.el9_6 |
| AlmaLinux:9 | kernel-zfcpdump-core | 0 | 5.14.0-570.21.1.el9_6 |
| AlmaLinux:9 | kernel-zfcpdump-devel | 0 | 5.14.0-570.21.1.el9_6 |
| AlmaLinux:9 | kernel-zfcpdump-devel-matched | 0 | 5.14.0-570.21.1.el9_6 |
| AlmaLinux:9 | kernel-zfcpdump-modules | 0 | 5.14.0-570.21.1.el9_6 |
| AlmaLinux:9 | kernel-zfcpdump-modules-core | 0 | 5.14.0-570.21.1.el9_6 |
| AlmaLinux:9 | kernel-zfcpdump-modules-extra | 0 | 5.14.0-570.21.1.el9_6 |
| AlmaLinux:9 | libperf | 0 | 5.14.0-570.21.1.el9_6 |
| AlmaLinux:9 | perf | 0 | 5.14.0-570.21.1.el9_6 |
| AlmaLinux:9 | python3-perf | 0 | 5.14.0-570.21.1.el9_6 |
| AlmaLinux:9 | rtla | 0 | 5.14.0-570.21.1.el9_6 |
| AlmaLinux:9 | rv | 0 | 5.14.0-570.21.1.el9_6 |
| Debian:13 | linux | 0 | 6.12.25-1 |
| Linux | Kernel | 6.3.0 | 6.6.88 |
| SUSE:Linux Enterprise High Availability Extension 15 SP6 | kernel-default | 0 | 6.4.0-150600.23.53.1 |
| SUSE:Linux Enterprise Live Patching 15 SP6 | kernel-default | 0 | 6.4.0-150600.23.53.1 |
| SUSE:Linux Enterprise Live Patching 15 SP6 | kernel-livepatch-SLE15-SP6-RT_Update_11 | 0 | 1-150600.1.3.2 |
| SUSE:Linux Enterprise Live Patching 15 SP6 | kernel-livepatch-SLE15-SP6_Update_12 | 0 | 1-150600.13.3.1 |
| SUSE:Linux Enterprise Module for Basesystem 15 SP6 | kernel-64kb | 0 | 6.4.0-150600.23.53.1 |
| SUSE:Linux Enterprise Module for Basesystem 15 SP6 | kernel-default | 0 | 6.4.0-150600.23.53.1 |
| SUSE:Linux Enterprise Module for Basesystem 15 SP6 | kernel-default-base | 0 | 6.4.0-150600.23.53.1.150600.12.24.1 |
| SUSE:Linux Enterprise Module for Basesystem 15 SP6 | kernel-source | 0 | 6.4.0-150600.23.53.1 |
| SUSE:Linux Enterprise Module for Basesystem 15 SP6 | kernel-zfcpdump | 0 | 6.4.0-150600.23.53.1 |
| SUSE:Linux Enterprise Module for Confidential Computing Technical Preview 15 SP6 | kernel-coco | 0 | 6.4.0-15061.28.coco15sp6.1 |
| SUSE:Linux Enterprise Module for Confidential Computing Technical Preview 15 SP6 | kernel-coco_debug | 0 | 6.4.0-15061.28.coco15sp6.1 |
| SUSE:Linux Enterprise Module for Confidential Computing Technical Preview 15 SP6 | kernel-source-coco | 0 | 6.4.0-15061.28.coco15sp6.1 |
| SUSE:Linux Enterprise Module for Confidential Computing Technical Preview 15 SP6 | kernel-syms-coco | 0 | 6.4.0-15061.28.coco15sp6.1 |
| SUSE:Linux Enterprise Module for Development Tools 15 SP6 | kernel-docs | 0 | 6.4.0-150600.23.53.1 |
| SUSE:Linux Enterprise Module for Development Tools 15 SP6 | kernel-obs-build | 0 | 6.4.0-150600.23.53.1 |
| SUSE:Linux Enterprise Module for Development Tools 15 SP6 | kernel-source | 0 | 6.4.0-150600.23.53.1 |
| SUSE:Linux Enterprise Module for Development Tools 15 SP6 | kernel-syms | 0 | 6.4.0-150600.23.53.1 |
| SUSE:Linux Enterprise Module for Legacy 15 SP6 | kernel-default | 0 | 6.4.0-150600.23.53.1 |
| SUSE:Linux Enterprise Module for Public Cloud 15 SP6 | kernel-azure | 0 | 6.4.0-150600.8.40.1 |
| SUSE:Linux Enterprise Module for Public Cloud 15 SP6 | kernel-source-azure | 0 | 6.4.0-150600.8.40.1 |
| SUSE:Linux Enterprise Module for Public Cloud 15 SP6 | kernel-syms-azure | 0 | 6.4.0-150600.8.40.1 |
| SUSE:Linux Enterprise Workstation Extension 15 SP6 | kernel-default | 0 | 6.4.0-150600.23.53.1 |
| SUSE:Real Time Module 15 SP6 | kernel-rt | 0 | 6.4.0-150600.10.39.1 |
| SUSE:Real Time Module 15 SP6 | kernel-rt_debug | 0 | 6.4.0-150600.10.39.1 |
| SUSE:Real Time Module 15 SP6 | kernel-source-rt | 0 | 6.4.0-150600.10.39.1 |
| SUSE:Real Time Module 15 SP6 | kernel-syms-rt | 0 | 6.4.0-150600.10.39.1 |
| openSUSE:Leap 15.6 | dtb-aarch64 | 0 | 6.4.0-150600.23.53.1 |
| openSUSE:Leap 15.6 | kernel-64kb | 0 | 6.4.0-150600.23.53.1 |
| openSUSE:Leap 15.6 | kernel-azure | 0 | 6.4.0-150600.8.40.1 |
| openSUSE:Leap 15.6 | kernel-debug | 0 | 6.4.0-150600.23.53.1 |
| openSUSE:Leap 15.6 | kernel-default | 0 | 6.4.0-150600.23.53.1 |
| openSUSE:Leap 15.6 | kernel-default-base | 0 | 6.4.0-150600.23.53.1.150600.12.24.1 |
| openSUSE:Leap 15.6 | kernel-docs | 0 | 6.4.0-150600.23.53.1 |
| openSUSE:Leap 15.6 | kernel-kvmsmall | 0 | 6.4.0-150600.23.53.1 |
| openSUSE:Leap 15.6 | kernel-obs-build | 0 | 6.4.0-150600.23.53.1 |
| openSUSE:Leap 15.6 | kernel-obs-qa | 0 | 6.4.0-150600.23.53.1 |
| openSUSE:Leap 15.6 | kernel-rt | 0 | 6.4.0-150600.10.39.1 |
| openSUSE:Leap 15.6 | kernel-rt_debug | 0 | 6.4.0-150600.10.39.1 |
| openSUSE:Leap 15.6 | kernel-source | 0 | 6.4.0-150600.23.53.1 |
| openSUSE:Leap 15.6 | kernel-source-azure | 0 | 6.4.0-150600.8.40.1 |
| openSUSE:Leap 15.6 | kernel-source-rt | 0 | 6.4.0-150600.10.39.1 |
| openSUSE:Leap 15.6 | kernel-syms | 0 | 6.4.0-150600.23.53.1 |
| openSUSE:Leap 15.6 | kernel-syms-azure | 0 | 6.4.0-150600.8.40.1 |
| openSUSE:Leap 15.6 | kernel-syms-rt | 0 | 6.4.0-150600.10.39.1 |
| openSUSE:Leap 15.6 | kernel-zfcpdump | 0 | 6.4.0-150600.23.53.1 |
Related vulnerabilities
- CVE-2025-68285 In the Linux kernel, the following vulnerability has been resolved: libceph: fix… Also affects kernel
- CVE-2025-68287 In the Linux kernel, the following vulnerability has been resolved: usb: dwc3: Fix race… Also affects kernel
- CVE-2025-40277 In the Linux kernel, the following vulnerability has been resolved: drm/vmwgfx: Validate… Also affects kernel
- CVE-2025-40240 In the Linux kernel, the following vulnerability has been resolved: sctp: avoid NULL… Also affects kernel
- CVE-2025-40185 In the Linux kernel, the following vulnerability has been resolved: ice: ice_adapter… Also affects kernel
- CVE-2025-40176 In the Linux kernel, the following vulnerability has been resolved: tls: wait for pending… Also affects kernel
- CVE-2025-40058 In the Linux kernel, the following vulnerability has been resolved: iommu/vt-d: Disallow… Also affects kernel
- CVE-2025-39981 In the Linux kernel, the following vulnerability has been resolved: Bluetooth: MGMT: Fix… Also affects kernel