Cloudanix VulnDB

CVE-2024-58096

High · 8.8

CVSS

8.8

EPSS

0.3%

Published

Apr 16, 2025

CISA due date

—

Cloudanix analysis

Schedule a fix SSVC: Track

A missing lock in the Wi-Fi driver can let internal data structures be accessed at the same time, causing warnings or instability when the card is used in a special monitoring mode.

Exploitation
Local Privilege
Attacker needs
Low Privilege
Complexity
Low
Impact
Denial Of Service
Component
OS kernel
Class
Race Condition
Remediation
Upgrade
Effort
Medium
Patch risk
Low

What it actually does

Missing srng->lock acquisition around ath11k_hal_srng_* calls in ath11k_dp_rx_mon_dest_process and ath11k_dp_full_mon_process_rx allows concurrent access to shared SRNG ring state during monitor-mode RX processing, producing warnings and potential data-structure corruption.

Why it matters to the business

Systems using ath11k Wi-Fi hardware in monitor or full-monitor mode may experience kernel warnings, reduced stability, or crashes; the low EPSS and absence from KEV indicate limited immediate operational risk but still require patching on affected kernels.

How an attack unfolds

An attacker with local access enables monitor mode on an ath11k device, then triggers concurrent RX ring processing paths that call unprotected ath11k_hal_srng_* functions, racing on internal ring pointers and metadata.

How to fix it

Update the Linux kernel to a version containing the fix that adds srng->lock protection and changes the relevant SRNG definitions from void to struct hal_srng; apply the exact fixed package versions listed for each distribution when they become available.

How to confirm the fix worked

Boot the patched kernel, enable monitor mode, exercise ath11k_dp_service_srng and mon-ring processing paths, and confirm the absence of the ath11k_hal_srng_dst_peek warning and related stack traces in dmesg or kernel logs.

Typical attack path

  1. Obtain local user privileges on a system with ath11k hardware
  2. Configure the interface into monitor or full-monitor mode
  3. Generate traffic or use tools that exercise ath11k_dp_rx_process_mon_status and ath11k_dp_rx_process_mon_rings
  4. Trigger simultaneous NAPI poll or service-SRNG paths to hit the unlocked ath11k_hal_srng_dst_peek and related calls

How to detect it

Search kernel logs and dmesg for the exact call trace beginning with RIP ath11k_hal_srng_dst_peek and the functions ath11k_dp_rx_process_mon_status, ath11k_dp_rx_process_mon_rings, and ath11k_dp_service_srng; monitor for repeated warnings when monitor mode is active.

  • ath11k_hal_srng_dst_peek+0x18/0x30 [ath11k]
  • ath11k_dp_rx_process_mon_status+0xc45/0x1190 [ath11k]
  • ath11k_dp_rx_process_mon_rings+0x32a/0x550 [ath11k]
  • RIP: 0010:ath11k_hal_srng_dst_peek

What your security team should do

  • Prioritize kernel updates on systems that use ath11k hardware and monitor mode
  • Add the provided call-trace strings to SIEM rules for proactive detection until patches are deployed
  • Review any downstream dependents or container images that ship the vulnerable ath11k driver

The record

In the Linux kernel, the following vulnerability has been resolved: wifi: ath11k: add srng->lock for ath11k_hal_srng_* in monitor mode ath11k_hal_srng_* should be used with srng->lock to protect srng data. For ath11k_dp_rx_mon_dest_process() and ath11k_dp_full_mon_process_rx(), they use ath11k_hal_srng_* for many times but never call srng->lock. So when running (full) monitor mode, warning will occur: RIP: 0010:ath11k_hal_srng_dst_peek+0x18/0x30 [ath11k] Call Trace: ? ath11k_hal_srng_dst_peek+0x18/0x30 [ath11k] ath11k_dp_rx_process_mon_status+0xc45/0x1190 [ath11k] ? idr_alloc_u32+0x97/0xd0 ath11k_dp_rx_process_mon_rings+0x32a/0x550 [ath11k] ath11k_dp_service_srng+0x289/0x5a0 [ath11k] ath11k_pcic_ext_grp_napi_poll+0x30/0xd0 [ath11k] __napi_poll+0x30/0x1f0 net_rx_action+0x198/0x320 __do_softirq+0xdd/0x319 So add srng->lock for them to avoid such warnings. Inorder to fetch the srng->lock, should change srng's definition from 'void' to 'struct hal_srng'. And initialize them elsewhere to prevent one line of code from being too long. This is consistent with other ring process functions, such as ath11k_dp_process_rx(). Tested-on: WCN6855 hw2.0 PCI WLAN.HSP.1.1-03125-QCAHSPSWPL_V1_V2_SILICONZ_LITE-3.6510.30 Tested-on: QCN9074 hw1.0 PCI WLAN.HK.2.7.0.1-01744-QCAHKSWPL_SILICONZ-1

Affected packages

Ecosystem Package Introduced Fixed
Chainguard hyperv-daemons-6.12 0 6.12.57-r0
Chainguard linux-aws-6.12-boot-installed 0 6.12.57-r0
Chainguard linux-aws-6.12-fips-boot-installed 0 6.12.57-r0
Chainguard linux-aws-6.12-headers 0 6.12.57-r1
Chainguard linux-aws-6.12-modules 0 6.12.57-r0
Chainguard linux-azure-6.12-boot-installed 0 6.12.57-r0
Chainguard linux-azure-6.12-fips-boot-installed 0 6.12.57-r0
Chainguard linux-azure-6.12-headers 0 6.12.57-r1
Chainguard linux-azure-6.12-modules 0 6.12.57-r0
Chainguard linux-gcp-6.12-boot-installed 0 6.12.57-r0
Chainguard linux-gcp-6.12-fips-boot-installed 0 6.12.57-r0
Chainguard linux-gcp-6.12-headers 0 6.12.57-r1
Chainguard linux-gcp-6.12-modules 0 6.12.57-r1
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-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 5.6.0 6.14.2
Linux Kernel 5.6.0 6.6.123
SUSE:Linux Enterprise High Availability Extension 15 SP6 kernel-default 0 6.4.0-150600.23.50.1
SUSE:Linux Enterprise High Availability Extension 15 SP7 kernel-default 0 6.4.0-150700.53.3.1
SUSE:Linux Enterprise Live Patching 15 SP6 kernel-default 0 6.4.0-150600.23.50.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_11 0 1-150600.13.3.1
SUSE:Linux Enterprise Live Patching 15 SP7 kernel-default 0 6.4.0-150700.53.3.1
SUSE:Linux Enterprise Live Patching 15 SP7 kernel-livepatch-SLE15-SP7_Update_1 0 1-150700.15.3.1
SUSE:Linux Enterprise Module for Basesystem 15 SP6 kernel-64kb 0 6.4.0-150600.23.50.1
SUSE:Linux Enterprise Module for Basesystem 15 SP6 kernel-default 0 6.4.0-150600.23.50.1
SUSE:Linux Enterprise Module for Basesystem 15 SP6 kernel-default-base 0 6.4.0-150600.23.50.1.150600.12.22.1
SUSE:Linux Enterprise Module for Basesystem 15 SP6 kernel-source 0 6.4.0-150600.23.50.1
SUSE:Linux Enterprise Module for Basesystem 15 SP6 kernel-zfcpdump 0 6.4.0-150600.23.50.1
SUSE:Linux Enterprise Module for Basesystem 15 SP7 kernel-64kb 0 6.4.0-150700.53.3.1
SUSE:Linux Enterprise Module for Basesystem 15 SP7 kernel-default 0 6.4.0-150700.53.3.1
SUSE:Linux Enterprise Module for Basesystem 15 SP7 kernel-default-base 0 6.4.0-150700.53.3.1.150700.17.2.1
SUSE:Linux Enterprise Module for Basesystem 15 SP7 kernel-source 0 6.4.0-150700.53.3.1
SUSE:Linux Enterprise Module for Basesystem 15 SP7 kernel-zfcpdump 0 6.4.0-150700.53.3.1
SUSE:Linux Enterprise Module for Confidential Computing Technical Preview 15 SP6 kernel-coco 0 6.4.0-15061.21.coco15sp6.1
SUSE:Linux Enterprise Module for Confidential Computing Technical Preview 15 SP6 kernel-coco_debug 0 6.4.0-15061.21.coco15sp6.1
SUSE:Linux Enterprise Module for Confidential Computing Technical Preview 15 SP6 kernel-source-coco 0 6.4.0-15061.21.coco15sp6.1
SUSE:Linux Enterprise Module for Confidential Computing Technical Preview 15 SP6 kernel-syms-coco 0 6.4.0-15061.21.coco15sp6.1
SUSE:Linux Enterprise Module for Development Tools 15 SP6 kernel-docs 0 6.4.0-150600.23.50.1
SUSE:Linux Enterprise Module for Development Tools 15 SP6 kernel-obs-build 0 6.4.0-150600.23.50.1
SUSE:Linux Enterprise Module for Development Tools 15 SP6 kernel-source 0 6.4.0-150600.23.50.1
SUSE:Linux Enterprise Module for Development Tools 15 SP6 kernel-syms 0 6.4.0-150600.23.50.1
SUSE:Linux Enterprise Module for Development Tools 15 SP7 kernel-docs 0 6.4.0-150700.53.3.1
SUSE:Linux Enterprise Module for Development Tools 15 SP7 kernel-obs-build 0 6.4.0-150700.53.3.1
SUSE:Linux Enterprise Module for Development Tools 15 SP7 kernel-source 0 6.4.0-150700.53.3.1
SUSE:Linux Enterprise Module for Development Tools 15 SP7 kernel-syms 0 6.4.0-150700.53.3.1
SUSE:Linux Enterprise Module for Legacy 15 SP6 kernel-default 0 6.4.0-150600.23.50.1
SUSE:Linux Enterprise Module for Legacy 15 SP7 kernel-default 0 6.4.0-150700.53.3.1
SUSE:Linux Enterprise Module for Public Cloud 15 SP6 kernel-azure 0 6.4.0-150600.8.37.1
SUSE:Linux Enterprise Module for Public Cloud 15 SP6 kernel-source-azure 0 6.4.0-150600.8.37.1
SUSE:Linux Enterprise Module for Public Cloud 15 SP6 kernel-syms-azure 0 6.4.0-150600.8.37.1
SUSE:Linux Enterprise Module for Public Cloud 15 SP7 kernel-azure 0 6.4.0-150700.20.3.1
SUSE:Linux Enterprise Module for Public Cloud 15 SP7 kernel-source-azure 0 6.4.0-150700.20.3.1
SUSE:Linux Enterprise Module for Public Cloud 15 SP7 kernel-syms-azure 0 6.4.0-150700.20.3.1
SUSE:Linux Enterprise Workstation Extension 15 SP6 kernel-default 0 6.4.0-150600.23.50.1
SUSE:Linux Enterprise Workstation Extension 15 SP7 kernel-default 0 6.4.0-150700.53.3.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.50.1
openSUSE:Leap 15.6 kernel-64kb 0 6.4.0-150600.23.50.1
openSUSE:Leap 15.6 kernel-azure 0 6.4.0-150600.8.37.1
openSUSE:Leap 15.6 kernel-debug 0 6.4.0-150600.23.50.1
openSUSE:Leap 15.6 kernel-default 0 6.4.0-150600.23.50.1
openSUSE:Leap 15.6 kernel-default-base 0 6.4.0-150600.23.50.1.150600.12.22.1
openSUSE:Leap 15.6 kernel-docs 0 6.4.0-150600.23.50.1
openSUSE:Leap 15.6 kernel-kvmsmall 0 6.4.0-150600.23.50.1
openSUSE:Leap 15.6 kernel-obs-build 0 6.4.0-150600.23.50.1
openSUSE:Leap 15.6 kernel-obs-qa 0 6.4.0-150600.23.50.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.50.1
openSUSE:Leap 15.6 kernel-source-azure 0 6.4.0-150600.8.37.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.50.1
openSUSE:Leap 15.6 kernel-syms-azure 0 6.4.0-150600.8.37.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.50.1

Related vulnerabilities