Description
In the Linux kernel, the following vulnerability has been resolved:

wifi: ath12k: fix NULL pointer dereference in rhash table destroy

When unbinding the ath12k driver, kernel NULL pointer dereferences
occur in irq_work_sync() called from rhashtable_destroy().

Two hash tables are affected:
1. ath12k_link_sta hash table in ath12k_base
2. ath12k_dp_link_peer hash table in ath12k_dp

The issue happens because the destroy functions are called unconditionally
in cleanup paths, but the hash tables are only initialized late in their
respective init functions. If the device was never fully started or if the
init functions failed before initializing the hash tables, the pointers
will be NULL. The issues are always reproducible from a VM because the MSI
addressing initialization is failing.

Call trace for ath12k_link_sta_rhash_tbl_destroy:
RIP: irq_work_sync+0x1e/0x70
rhashtable_destroy+0x12/0x60
ath12k_link_sta_rhash_tbl_destroy+0x19/0x40 [ath12k]
ath12k_core_stop+0xe/0x80 [ath12k]
ath12k_core_hw_group_cleanup+0x6b/0xb0 [ath12k]
ath12k_pci_remove+0x60/0x110 [ath12k]

Call trace for ath12k_dp_link_peer_rhash_tbl_destroy:
RIP: irq_work_sync+0x1e/0x70
rhashtable_destroy+0x12/0x60
ath12k_dp_link_peer_rhash_tbl_destroy+0x29/0x50 [ath12k]
ath12k_dp_cmn_device_deinit+0x21/0x140 [ath12k]
ath12k_core_hw_group_cleanup+0x6b/0xb0 [ath12k]
ath12k_pci_remove+0x60/0x110 [ath12k]

Fix this by adding NULL checks before calling rhashtable_destroy() in
both destroy functions.

The NULL check approach was chosen because the rhashtable pointer
serves as the initialization state indicator. The init can fail at
various points, leaving some components uninitialized. Checking the
pointer directly is simpler than adding separate state flags that
would need synchronization.
Published: 2026-08-10
Score: n/a
EPSS: n/a
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

In the Linux kernel, a flaw in the ath12k wireless driver caused a NULL pointer dereference when the driver was unbound and its internal hash tables were destroyed. The hash tables are allocated late during initialization, so if the driver never fully starts or if initialization fails, their pointers remain NULL. Unconditionally calling the destroy routine in cleanup paths triggers a kernel crash. This results in a denial of service because the system hangs or requires a reboot. The weakness is a standard NULL pointer dereference. The vulnerability is limited to kernel code that includes the ath12k driver; it does not provide a direct path to arbitrary code execution. Affected systems: The vulnerability exists in any Linux kernel that uses the ath12k driver before the patch was applied. Vendors listed are Linux:Linux. The affected versions are all kernels lacking the NULL check in both ath12k_link_sta and ath12k_dp_link_peer destroy functions, i.e., kernels prior to the commit that introduced the check. Risk and exploitability: The flaw results in a kernel crash under a cleanup path that is triggered upon driver removal. The attack vector is local, requiring the ability to unload or rebind the ath12k driver, which typically requires elevated privileges on the host. The exploitability is therefore limited to systems where a malicious user can influence driver state or to situations where a device driver is improperly cleaned up during normal operation. EPSS data is unavailable, and the vulnerability is not listed in the CISA KEV catalog. The CVSS score is not supplied, but the impact suggests a medium-level severity bounded to denial of service and local privilege escalation possibilities only if an attacker can gain the required privileges.

Affected Systems

Linux kernels deploying the ath12k wireless driver, before the patch that added NULL checks to rhashtable_destroy calls. All distributions using the kernel’s ath12k module are potentially impacted until updated to a version containing the fix.

Risk and Exploitability

Although the flaw causes a kernel crash leading to denial of service, it does not provide direct remote code execution. Attackers would need local access to unload the driver or exploit a fault where the device is not fully initialized. Given the lack of EPSS data and no KEV listing, the likelihood of widespread exploitation is low, but care should be taken on systems that may erroneously remove the driver or run vulnerable kernel versions.

Generated by OpenCVE AI on August 10, 2026 at 14:28 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Apply a kernel update that includes the NULL check in both ath12k_link_sta and ath12k_dp_link_peer destroy functions.
  • If a kernel update cannot be applied immediately, avoid unloading or removing the ath12k driver until the system is rebooted or until the driver is fully initialized.
  • Verify that the device is functioning correctly by monitoring kernel logs for any related crash or warning messages after driver initialization.

Generated by OpenCVE AI on August 10, 2026 at 14:28 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Mon, 10 Aug 2026 14:45:00 +0000

Type Values Removed Values Added
Weaknesses CWE-690

Mon, 10 Aug 2026 12:30:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: wifi: ath12k: fix NULL pointer dereference in rhash table destroy When unbinding the ath12k driver, kernel NULL pointer dereferences occur in irq_work_sync() called from rhashtable_destroy(). Two hash tables are affected: 1. ath12k_link_sta hash table in ath12k_base 2. ath12k_dp_link_peer hash table in ath12k_dp The issue happens because the destroy functions are called unconditionally in cleanup paths, but the hash tables are only initialized late in their respective init functions. If the device was never fully started or if the init functions failed before initializing the hash tables, the pointers will be NULL. The issues are always reproducible from a VM because the MSI addressing initialization is failing. Call trace for ath12k_link_sta_rhash_tbl_destroy: RIP: irq_work_sync+0x1e/0x70 rhashtable_destroy+0x12/0x60 ath12k_link_sta_rhash_tbl_destroy+0x19/0x40 [ath12k] ath12k_core_stop+0xe/0x80 [ath12k] ath12k_core_hw_group_cleanup+0x6b/0xb0 [ath12k] ath12k_pci_remove+0x60/0x110 [ath12k] Call trace for ath12k_dp_link_peer_rhash_tbl_destroy: RIP: irq_work_sync+0x1e/0x70 rhashtable_destroy+0x12/0x60 ath12k_dp_link_peer_rhash_tbl_destroy+0x29/0x50 [ath12k] ath12k_dp_cmn_device_deinit+0x21/0x140 [ath12k] ath12k_core_hw_group_cleanup+0x6b/0xb0 [ath12k] ath12k_pci_remove+0x60/0x110 [ath12k] Fix this by adding NULL checks before calling rhashtable_destroy() in both destroy functions. The NULL check approach was chosen because the rhashtable pointer serves as the initialization state indicator. The init can fail at various points, leaving some components uninitialized. Checking the pointer directly is simpler than adding separate state flags that would need synchronization.
Title wifi: ath12k: fix NULL pointer dereference in rhash table destroy
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-08-10T12:00:09.069Z

Reserved: 2026-07-30T09:28:09.373Z

Link: CVE-2026-68191

cve-icon Vulnrichment

No data.

cve-icon NVD

No data.

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-10T22:15:03Z

Weaknesses
  • CWE-690

    Unchecked Return Value to NULL Pointer Dereference