← Back to CVE Explorer

CVE-2026-93094

Full vulnerability record from the local CVENow database.

Description

In the Linux kernel, the following vulnerability has been resolved: wifi: ath12k: fix dp_link_peer dangling references on AP vdev rollback ath12k_mac_vdev_create() for an AP vdev creates the bss self-peer via ath12k_peer_create(), which finishes by calling ath12k_dp_link_peer_assign() to publish the dp_link_peer in the dp_hw->dp_peers[peerid_index] RCU table, in the dp_peer's link_peers[] array, and in the per-addr rhashtable. If a step after ath12k_peer_create() fails the function jumps to err_peer_del, which open-codes a WMI peer_delete and waits for the unmap / delete_resp events. The wait_for_peer_delete_done() path relies on ath12k_dp_link_peer_unmap_event() freeing the dp_link_peer when the unmap arrives, but err_peer_del never calls ath12k_dp_link_peer_unassign() first. The published references in the dp_hw RCU table, dp_peer->link_peers[] and the rhashtable are left pointing at the dp_link_peer that unmap_event then frees, producing dangling pointers and use-after-free on subsequent lookups. Replace the open-coded sequence with a call to ath12k_peer_delete(), which already does ath12k_dp_link_peer_unassign() before sending the WMI command. This drops the published references before the dp_link_peer is freed, in the same order as the normal teardown path in ath12k_mac_remove_link_interface(). Tested-on: WCN7850 hw2.0 PCI WLAN.HMT.1.1.c7-00108-QCAHMTSWPL_V1.0_V2.0_SILICONZ_UPSTREAM-3

Severity
Not scored
CVSS score
Not available
Vulnerability status
Received
Source identifier
416baaa9-dc9f-4396-8d5f-8c081fb06d67
Published
2026-09-17 17:18:03.430000
Last modified
2026-10-19 10:16:59.180000
View original CVE JSON
{
  "id": "CVE-2026-93094",
  "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
  "published": "2026-09-17T17:18:03.430",
  "lastModified": "2026-10-19T10:16:59.180",
  "vulnStatus": "Received",
  "cveTags": [],
  "descriptions": [
    {
      "lang": "en",
      "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nwifi: ath12k: fix dp_link_peer dangling references on AP vdev rollback\n\nath12k_mac_vdev_create() for an AP vdev creates the bss self-peer via\nath12k_peer_create(), which finishes by calling\nath12k_dp_link_peer_assign() to publish the dp_link_peer in the\ndp_hw->dp_peers[peerid_index] RCU table, in the dp_peer's\nlink_peers[] array, and in the per-addr rhashtable.\n\nIf a step after ath12k_peer_create() fails the function jumps to\nerr_peer_del, which open-codes a WMI peer_delete and waits for the\nunmap / delete_resp events. The wait_for_peer_delete_done() path\nrelies on ath12k_dp_link_peer_unmap_event() freeing the dp_link_peer\nwhen the unmap arrives, but err_peer_del never calls\nath12k_dp_link_peer_unassign() first. The published references in\nthe dp_hw RCU table, dp_peer->link_peers[] and the rhashtable are\nleft pointing at the dp_link_peer that unmap_event then frees,\nproducing dangling pointers and use-after-free on subsequent\nlookups.\n\nReplace the open-coded sequence with a call to ath12k_peer_delete(),\nwhich already does ath12k_dp_link_peer_unassign() before sending the\nWMI command. This drops the published references before the\ndp_link_peer is freed, in the same order as the normal teardown path\nin ath12k_mac_remove_link_interface().\n\nTested-on: WCN7850 hw2.0 PCI WLAN.HMT.1.1.c7-00108-QCAHMTSWPL_V1.0_V2.0_SILICONZ_UPSTREAM-3"
    }
  ],
  "affected": [
    {
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
      "affectedData": [
        {
          "vendor": "Linux",
          "product": "Linux",
          "defaultStatus": "unaffected",
          "programFiles": [
            "drivers/net/wireless/ath/ath12k/mac.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "versions": [
            {
              "version": "5525f12fa671a007c6c6044c861eee86de71b576",
              "lessThan": "af405d216316d99f9b48733145fc708110011e0f",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "5525f12fa671a007c6c6044c861eee86de71b576",
              "lessThan": "f066e1a93703c5be0fd905109d00587541711c97",
              "versionType": "git",
              "status": "affected"
            }
          ]
        },
        {
          "vendor": "Linux",
          "product": "Linux",
          "defaultStatus": "affected",
          "programFiles": [
            "drivers/net/wireless/ath/ath12k/mac.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "versions": [
            {
              "version": "7.0",
              "status": "affected"
            },
            {
              "version": "0",
              "lessThan": "7.0",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "7.2.6",
              "lessThanOrEqual": "7.2.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "7.3",
              "lessThanOrEqual": "*",
              "versionType": "original_commit_for_fix",
              "status": "unaffected"
            }
          ]
        }
      ]
    }
  ],
  "metrics": {},
  "references": [
    {
      "url": "https://git.kernel.org/stable/c/af405d216316d99f9b48733145fc708110011e0f",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/f066e1a93703c5be0fd905109d00587541711c97",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    }
  ]
}