CVE-2025-38199
NoneCVSS
—
EPSS
0.2%
Published
Jul 4, 2025
CISA due date
—
Cloudanix analysis
A wireless driver bug can slowly drain system memory when network stations are added repeatedly, potentially slowing down or crashing affected devices over time.
- Exploitation
- Local Privilege
- Attacker needs
- Local User
- Complexity
- Low
- Impact
- Denial Of Service
- Component
- OS kernel
- Class
- Memory Corruption
- Remediation
- Patch
- Effort
- Medium
- Patch risk
- Low
What it actually does
Repeated calls to ath12k_mac_station_add allocate rx_stats for the same arsta without checking for prior allocation, producing a memory leak each time a station is re-added.
Why it matters to the business
Systems using affected Qualcomm WiFi hardware can experience gradual memory exhaustion, leading to degraded performance or eventual service disruption on long-running wireless access points or clients.
How an attack unfolds
An attacker or misbehaving client repeatedly triggers station addition events against an ath12k interface, causing the driver to allocate duplicate rx_stats structures that are never freed, slowly depleting kernel memory.
How to fix it
Update the Linux kernel to a version containing commit 232f962ae5fca98912a719e64b4964a5aec7c99b or later; packaged products should move to the listed fixed versions such as jenkins-2 2.515-r0 or equivalent Chainguard/Wolfi builds.
How to confirm the fix worked
Confirm the driver source contains the NULL check before rx_stats allocation in ath12k_mac_station_add; monitor kernel memory usage under repeated station-add workloads to verify the leak is closed.
Typical attack path
- Establish or force repeated association attempts to the same station on an ath12k interface
- Trigger ath12k_mac_station_add multiple times without intervening station removal
- Observe cumulative rx_stats allocations that are never released
- Continue until kernel memory pressure causes performance impact or OOM conditions
How to detect it
Review kernel logs and memory accounting for repeated ath12k rx_stats allocations without corresponding station removals; correlate with WiFi station management events on affected hardware.
What your security team should do
- Prioritize kernel upgrades on all systems with ath12k hardware within normal patch windows
- Monitor memory utilization on wireless infrastructure for unexplained growth
- Apply the specific fixed package versions provided for each affected distribution
The record
In the Linux kernel, the following vulnerability has been resolved: wifi: ath12k: Fix memory leak due to multiple rx_stats allocation rx_stats for each arsta is allocated when adding a station. arsta->rx_stats will be freed when a station is removed. Redundant allocations are occurring when the same station is added multiple times. This causes ath12k_mac_station_add() to be called multiple times, and rx_stats is allocated each time. As a result there is memory leaks. Prevent multiple allocations of rx_stats when ath12k_mac_station_add() is called repeatedly by checking if rx_stats is already allocated before allocating again. Allocate arsta->rx_stats if arsta->rx_stats is NULL respectively. Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.3.1-00173-QCAHKSWPL_SILICONZ-1 Tested-on: WCN7850 hw2.0 PCI WLAN.HMT.1.0.c5-00481-QCAHMTSWPL_V1.0_V2.0_SILICONZ-3
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Chainguard | hyperv-daemons-6.12 | 0 | 6.12.57-r2 |
| Chainguard | linux-aws-6.12-boot-installed | 0 | 6.12.57-r2 |
| Chainguard | linux-aws-6.12-fips-boot-installed | 0 | 6.12.57-r2 |
| Chainguard | linux-aws-6.12-headers | 0 | 6.12.57-r2 |
| Chainguard | linux-aws-6.12-modules | 0 | 6.12.57-r2 |
| Chainguard | linux-azure-6.12-boot-installed | 0 | 6.12.57-r2 |
| Chainguard | linux-azure-6.12-fips-boot-installed | 0 | 6.12.57-r2 |
| Chainguard | linux-azure-6.12-headers | 0 | 6.12.57-r2 |
| Chainguard | linux-azure-6.12-modules | 0 | 6.12.57-r2 |
| Chainguard | linux-gcp-6.12-boot-installed | 0 | 6.12.58-r0 |
| Chainguard | linux-gcp-6.12-fips-boot-installed | 0 | 6.12.57-r2 |
| Chainguard | linux-gcp-6.12-headers | 0 | 6.12.57-r2 |
| Chainguard | linux-gcp-6.12-modules | 0 | 6.12.57-r2 |
| Chainguard | linux-qemu-6.12-boot-installed | 0 | 6.12.63-r0 |
| Chainguard | linux-qemu-6.12-fips-boot-installed | 0 | 6.12.63-r0 |
| Chainguard | linux-qemu-6.12-headers | 0 | 6.12.63-r0 |
| Chainguard | linux-qemu-6.12-modules | 0 | 6.12.63-r0 |
| Chainguard | linux-vmware-6.12 | 0 | 6.12.67-r0 |
| Chainguard | linux-vmware-6.12-boot-installed | 0 | 6.12.63-r0 |
| Chainguard | linux-vmware-6.12-fips-boot-installed | 0 | 6.12.63-r0 |
| Chainguard | linux-vmware-6.12-headers | 0 | 6.12.63-r0 |
| Chainguard | linux-vmware-6.12-modules | 0 | 6.12.63-r0 |
| Debian:11 | linux | 0 | No fix |
| Debian:12 | linux | 0 | No fix |
| Debian:13 | linux | 0 | No fix |
| Debian:14 | linux | 0 | 6.16.3-1 |
| Linux | Kernel | 6.3.0 | 6.15.4 |
Related vulnerabilities
- CVE-2025-39910 In the Linux kernel, the following vulnerability has been resolved: mm/vmalloc, mm/kasan… Also affects hyperv-daemons-6.12
- CVE-2025-39925 can: j1939: implement NETDEV_UNREGISTER notification handler Also affects hyperv-daemons-6.12
- CVE-2025-39905 net: phylink: add lock for serializing concurrent pl->phydev writes with resolver Also affects hyperv-daemons-6.12
- CVE-2025-39862 In the Linux kernel, the following vulnerability has been resolved: wifi: mt76: mt7915… Also affects hyperv-daemons-6.12
- CVE-2025-39859 In the Linux kernel, the following vulnerability has been resolved: ptp: ocp: fix… Also affects hyperv-daemons-6.12
- CVE-2025-39834 In the Linux kernel, the following vulnerability has been resolved: net/mlx5: HWS, Fix… Also affects hyperv-daemons-6.12
- CVE-2025-39830 In the Linux kernel, the following vulnerability has been resolved: net/mlx5: HWS, Fix… Also affects hyperv-daemons-6.12
- CVE-2025-39833 In the Linux kernel, the following vulnerability has been resolved: mISDN: hfcpci: Fix… Also affects hyperv-daemons-6.12