CVE-2026-74366 (GCVE-0-2026-74366)

Vulnerability from cvelistv5 – Published: 2026-08-15 05:58 – Updated: 2026-08-17 05:18
VLAI
Title
wifi: ath12k: fix NULL deref in change_sta_links for unready link
Summary
In the Linux kernel, the following vulnerability has been resolved: wifi: ath12k: fix NULL deref in change_sta_links for unready link _ieee80211_set_active_links() calls _ieee80211_link_use_channel() for each newly-added link and WARN_ON_ONCE()s if it fails. The call uses assign_on_failure=true, which allows mac80211 to continue despite driver failures, but when a mac80211-level channel validation fails (e.g., combinations check, DFS, or no available radio), drv_assign_vif_chanctx() is never reached. Since ath12k_mac_vdev_create() is only called from that path, arvif->is_created remains false and arvif->ar remains NULL for the failed link. The subsequent drv_change_sta_links() call reaches ath12k_mac_op_change_sta_links(), which allocates an arsta and sets ahsta->links_map |= BIT(link_id) for the broken link before checking whether the link is ready. When the vdev was never created, only station_add() is skipped, but the link remains in links_map. Any subsequent operation iterating links_map and dereferencing arvif->ar without a NULL check will crash. Two observed examples are NULL deref in ath12k_mac_ml_station_remove() on disconnect and in ath12k_mac_op_set_key() when wpa_supplicant installs PTK keys. BUG: Unable to handle kernel NULL pointer dereference at 0x00000000 pc : ath12k_mac_station_post_remove+0x40/0xe8 [ath12k] Call trace: ath12k_mac_station_post_remove+0x40/0xe8 [ath12k] ath12k_mac_op_sta_state+0xb60/0x1720 [ath12k] drv_sta_state+0x100/0xbd8 [mac80211] __sta_info_destroy_part2+0x148/0x178 [mac80211] ieee80211_set_disassoc+0x500/0x678 [mac80211] BUG: Unable to handle kernel NULL pointer dereference at 0x00000000 pc : ath12k_mac_op_set_key+0x1f8/0x2c0 [ath12k] Call trace: ath12k_mac_op_set_key+0x1f8/0x2c0 [ath12k] drv_set_key+0x70/0x100 [mac80211] ieee80211_key_enable_hw_accel+0x78/0x260 [mac80211] ieee80211_add_key+0x16c/0x2ac [mac80211] nl80211_new_key+0x138/0x280 [cfg80211] Fix this by checking arvif->is_created before calling ath12k_mac_alloc_assign_link_sta(). This prevents the broken link from entering links_map, so all subsequent operations iterating the bitmap are protected. The reliability of arvif->is_created across all error paths is ensured by the preceding patch. Tested-on: WCN7850 hw2.0 PCI WLAN.HMT.1.1.c5-00302-QCAHMTSWPL_V1.0_V2.0_SILICONZ-1.115823.3
Severity
No CVSS data available.
Impacted products
Vendor Product Version CPE status
Linux Linux Affected: a27fa6148dacc79451e523c2694bc0a673b1be05 , < cfcea221db933295bf2cd75a7f80d441c7a51e28 (git)
Affected: a27fa6148dacc79451e523c2694bc0a673b1be05 , < 5f5be2aa3b6d730c51dd4f8b432f2ad72823e63f (git)
Affected: a27fa6148dacc79451e523c2694bc0a673b1be05 , < 47809a7c8348bc4a332ccc26a37c7145a5f609f8 (git)
guessed Create a notification for this product.
Linux Linux Affected: 6.14
Unaffected: 0 , < 6.14 (semver)
Unaffected: 6.18.40 , ≤ 6.18.* (semver)
Unaffected: 7.1.5 , ≤ 7.1.* (semver)
Unaffected: 7.2 , ≤ * (original_commit_for_fix)
guessed Create a notification for this product.
Show details on NVD website

{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "drivers/net/wireless/ath/ath12k/mac.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "cfcea221db933295bf2cd75a7f80d441c7a51e28",
              "status": "affected",
              "version": "a27fa6148dacc79451e523c2694bc0a673b1be05",
              "versionType": "git"
            },
            {
              "lessThan": "5f5be2aa3b6d730c51dd4f8b432f2ad72823e63f",
              "status": "affected",
              "version": "a27fa6148dacc79451e523c2694bc0a673b1be05",
              "versionType": "git"
            },
            {
              "lessThan": "47809a7c8348bc4a332ccc26a37c7145a5f609f8",
              "status": "affected",
              "version": "a27fa6148dacc79451e523c2694bc0a673b1be05",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "drivers/net/wireless/ath/ath12k/mac.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "6.14"
            },
            {
              "lessThan": "6.14",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.18.*",
              "status": "unaffected",
              "version": "6.18.40",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "7.1.*",
              "status": "unaffected",
              "version": "7.1.5",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "7.2",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.18.40",
                  "versionStartIncluding": "6.14",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.1.5",
                  "versionStartIncluding": "6.14",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.2",
                  "versionStartIncluding": "6.14",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nwifi: ath12k: fix NULL deref in change_sta_links for unready link\n\n_ieee80211_set_active_links() calls _ieee80211_link_use_channel() for\neach newly-added link and WARN_ON_ONCE()s if it fails. The call uses\nassign_on_failure=true, which allows mac80211 to continue despite\ndriver failures, but when a mac80211-level channel validation fails\n(e.g., combinations check, DFS, or no available radio),\ndrv_assign_vif_chanctx() is never reached. Since ath12k_mac_vdev_create()\nis only called from that path, arvif-\u003eis_created remains false and\narvif-\u003ear remains NULL for the failed link.\n\nThe subsequent drv_change_sta_links() call reaches\nath12k_mac_op_change_sta_links(), which allocates an arsta and sets\nahsta-\u003elinks_map |= BIT(link_id) for the broken link before checking\nwhether the link is ready. When the vdev was never created, only\nstation_add() is skipped, but the link remains in links_map.\n\nAny subsequent operation iterating links_map and dereferencing arvif-\u003ear\nwithout a NULL check will crash. Two observed examples are NULL deref in\nath12k_mac_ml_station_remove() on disconnect and in ath12k_mac_op_set_key()\nwhen wpa_supplicant installs PTK keys.\n\n  BUG: Unable to handle kernel NULL pointer dereference at 0x00000000\n  pc : ath12k_mac_station_post_remove+0x40/0xe8 [ath12k]\n  Call trace:\n   ath12k_mac_station_post_remove+0x40/0xe8 [ath12k]\n   ath12k_mac_op_sta_state+0xb60/0x1720 [ath12k]\n   drv_sta_state+0x100/0xbd8 [mac80211]\n   __sta_info_destroy_part2+0x148/0x178 [mac80211]\n   ieee80211_set_disassoc+0x500/0x678 [mac80211]\n\n  BUG: Unable to handle kernel NULL pointer dereference at 0x00000000\n  pc : ath12k_mac_op_set_key+0x1f8/0x2c0 [ath12k]\n  Call trace:\n   ath12k_mac_op_set_key+0x1f8/0x2c0 [ath12k]\n   drv_set_key+0x70/0x100 [mac80211]\n   ieee80211_key_enable_hw_accel+0x78/0x260 [mac80211]\n   ieee80211_add_key+0x16c/0x2ac [mac80211]\n   nl80211_new_key+0x138/0x280 [cfg80211]\n\nFix this by checking arvif-\u003eis_created before calling\nath12k_mac_alloc_assign_link_sta(). This prevents the broken link from\nentering links_map, so all subsequent operations iterating the bitmap\nare protected. The reliability of arvif-\u003eis_created across all error\npaths is ensured by the preceding patch.\n\nTested-on: WCN7850 hw2.0 PCI WLAN.HMT.1.1.c5-00302-QCAHMTSWPL_V1.0_V2.0_SILICONZ-1.115823.3"
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-17T05:18:01.222Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/cfcea221db933295bf2cd75a7f80d441c7a51e28"
        },
        {
          "url": "https://git.kernel.org/stable/c/5f5be2aa3b6d730c51dd4f8b432f2ad72823e63f"
        },
        {
          "url": "https://git.kernel.org/stable/c/47809a7c8348bc4a332ccc26a37c7145a5f609f8"
        }
      ],
      "title": "wifi: ath12k: fix NULL deref in change_sta_links for unready link",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2026-74366",
    "datePublished": "2026-08-15T05:58:48.264Z",
    "dateReserved": "2026-08-15T05:44:03.888Z",
    "dateUpdated": "2026-08-17T05:18:01.222Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2026-74366",
      "date": "2026-09-21",
      "epss": "0.00166",
      "percentile": "0.0628"
    },
    "nvd": {
      "cve": {
        "affected": [
          {
            "affectedData": [
              {
                "defaultStatus": "unaffected",
                "product": "Linux",
                "programFiles": [
                  "drivers/net/wireless/ath/ath12k/mac.c"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "lessThan": "cfcea221db933295bf2cd75a7f80d441c7a51e28",
                    "status": "affected",
                    "version": "a27fa6148dacc79451e523c2694bc0a673b1be05",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "5f5be2aa3b6d730c51dd4f8b432f2ad72823e63f",
                    "status": "affected",
                    "version": "a27fa6148dacc79451e523c2694bc0a673b1be05",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "47809a7c8348bc4a332ccc26a37c7145a5f609f8",
                    "status": "affected",
                    "version": "a27fa6148dacc79451e523c2694bc0a673b1be05",
                    "versionType": "git"
                  }
                ]
              },
              {
                "defaultStatus": "affected",
                "product": "Linux",
                "programFiles": [
                  "drivers/net/wireless/ath/ath12k/mac.c"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "status": "affected",
                    "version": "6.14"
                  },
                  {
                    "lessThan": "6.14",
                    "status": "unaffected",
                    "version": "0",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "6.18.*",
                    "status": "unaffected",
                    "version": "6.18.40",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "7.1.*",
                    "status": "unaffected",
                    "version": "7.1.5",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "*",
                    "status": "unaffected",
                    "version": "7.2",
                    "versionType": "original_commit_for_fix"
                  }
                ]
              }
            ],
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
          }
        ],
        "cveTags": [],
        "descriptions": [
          {
            "lang": "en",
            "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nwifi: ath12k: fix NULL deref in change_sta_links for unready link\n\n_ieee80211_set_active_links() calls _ieee80211_link_use_channel() for\neach newly-added link and WARN_ON_ONCE()s if it fails. The call uses\nassign_on_failure=true, which allows mac80211 to continue despite\ndriver failures, but when a mac80211-level channel validation fails\n(e.g., combinations check, DFS, or no available radio),\ndrv_assign_vif_chanctx() is never reached. Since ath12k_mac_vdev_create()\nis only called from that path, arvif-\u003eis_created remains false and\narvif-\u003ear remains NULL for the failed link.\n\nThe subsequent drv_change_sta_links() call reaches\nath12k_mac_op_change_sta_links(), which allocates an arsta and sets\nahsta-\u003elinks_map |= BIT(link_id) for the broken link before checking\nwhether the link is ready. When the vdev was never created, only\nstation_add() is skipped, but the link remains in links_map.\n\nAny subsequent operation iterating links_map and dereferencing arvif-\u003ear\nwithout a NULL check will crash. Two observed examples are NULL deref in\nath12k_mac_ml_station_remove() on disconnect and in ath12k_mac_op_set_key()\nwhen wpa_supplicant installs PTK keys.\n\n  BUG: Unable to handle kernel NULL pointer dereference at 0x00000000\n  pc : ath12k_mac_station_post_remove+0x40/0xe8 [ath12k]\n  Call trace:\n   ath12k_mac_station_post_remove+0x40/0xe8 [ath12k]\n   ath12k_mac_op_sta_state+0xb60/0x1720 [ath12k]\n   drv_sta_state+0x100/0xbd8 [mac80211]\n   __sta_info_destroy_part2+0x148/0x178 [mac80211]\n   ieee80211_set_disassoc+0x500/0x678 [mac80211]\n\n  BUG: Unable to handle kernel NULL pointer dereference at 0x00000000\n  pc : ath12k_mac_op_set_key+0x1f8/0x2c0 [ath12k]\n  Call trace:\n   ath12k_mac_op_set_key+0x1f8/0x2c0 [ath12k]\n   drv_set_key+0x70/0x100 [mac80211]\n   ieee80211_key_enable_hw_accel+0x78/0x260 [mac80211]\n   ieee80211_add_key+0x16c/0x2ac [mac80211]\n   nl80211_new_key+0x138/0x280 [cfg80211]\n\nFix this by checking arvif-\u003eis_created before calling\nath12k_mac_alloc_assign_link_sta(). This prevents the broken link from\nentering links_map, so all subsequent operations iterating the bitmap\nare protected. The reliability of arvif-\u003eis_created across all error\npaths is ensured by the preceding patch.\n\nTested-on: WCN7850 hw2.0 PCI WLAN.HMT.1.1.c5-00302-QCAHMTSWPL_V1.0_V2.0_SILICONZ-1.115823.3"
          }
        ],
        "id": "CVE-2026-74366",
        "lastModified": "2026-08-17T06:19:31.440",
        "metrics": {},
        "published": "2026-08-15T06:22:38.287",
        "references": [
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/47809a7c8348bc4a332ccc26a37c7145a5f609f8"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/5f5be2aa3b6d730c51dd4f8b432f2ad72823e63f"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/cfcea221db933295bf2cd75a7f80d441c7a51e28"
          }
        ],
        "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "vulnStatus": "Received"
      }
    },
    "redhat_vex": {
      "aggregate_severity": "Moderate",
      "current_release_date": "2026-08-20T20:53:21+00:00",
      "cve": "CVE-2026-74366",
      "id": "CVE-2026-74366",
      "initial_release_date": "2026-08-15T00:00:00+00:00",
      "product_status:known_affected": "184",
      "product_status:known_not_affected": "90",
      "source": "Red Hat CSAF VEX",
      "status": "final",
      "title": "kernel: wifi: ath12k: fix NULL deref in change_sta_links for unready link",
      "url": "https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-74366.json",
      "version": "3"
    },
    "suse_vex": {
      "aggregate_severity": "moderate",
      "current_release_date": "2026-08-28T16:39:58Z",
      "cve": "CVE-2026-74366",
      "id": "CVE-2026-74366",
      "initial_release_date": "2026-08-27T16:51:40Z",
      "product_status:known_not_affected": "362",
      "source": "SUSE CSAF VEX",
      "status": "interim",
      "title": "SUSE CVE CVE-2026-74366",
      "url": "https://ftp.suse.com/pub/projects/security/csaf-vex/cve-2026-74366.json",
      "version": "3"
    }
  }
}



Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Forecast uses a logistic model when the trend is rising, or an exponential decay model when the trend is falling. Fitted via linearized least squares.

Sightings

Author Source Type Date Other

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or observed by the user.
  • Confirmed: The vulnerability has been validated from an analyst's perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
  • Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
  • Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
  • Not confirmed: The user expressed doubt about the validity of the vulnerability.
  • Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.

Loading…

Loading…

Loading…

Related by attack behaviour

Vulnerabilities whose description is nearest to this one in the vector space of the CIRCL/vulnerability-attack-technique-biencoder model. This is a similarity search over the bi-encoder space (plain cosine), not a classification, and it has no measured accuracy.


Loading…