Skip to content
Heist/ feed
Back to feed
UnratedFix available

wifi: mac80211: keep paired old chanctx alive

Type: advisorySources: OSV

In the Linux kernel, the following vulnerability has been resolved: wifi: mac80211: keep paired old chanctx alive An in-place replacement keeps reciprocal replace_ctx pointers between the old WILL_BE_REPLACED chanctx and the new REPLACES_OTHER chanctx. However, the early free paths only consider assigned and reserved link users when deciding whether to free the old chanctx. That lets the old chanctx be freed too early while the replacement partner still points back to it, either when the last assigned link is released or when that link successfully reassigns to another existing context. Later unreserve and switch-finalization paths can then follow a stale replace_ctx pointer. Keep a paired old chanctx alive until the replacement pair has been torn down. Apply the same check to both __ieee80211_link_release_channel() and ieee80211_link_use_reserved_reassign(). If the replacement is later abandoned, ieee80211_link_unreserve_chanctx() already tears down the pairing before freeing the old chanctx once no users remain.

Products
Kernel
Affected versions
Not specified
Fixed versions
5.10.273, 5.15.224, 6.1.191, 6.12.113, 6.18.56, 6.6.160, 7.2.10
CVEs
CVE-2026-98708
Confirmed fixed CVEs
Not specified
Updated in this feed
4 Nov 2026, 16:58 UTC · Revision 1

Source evidence

wifi: mac80211: keep paired old chanctx alive

core-osv · Original source

Published 18 Oct 2026, 15:46 UTC

In the Linux kernel, the following vulnerability has been resolved: wifi: mac80211: keep paired old chanctx alive An in-place replacement keeps reciprocal replace_ctx pointers between the old WILL_BE_REPLACED chanctx and the new REPLACES_OTHER chanctx. However, the early free paths only consider assigned and reserved link users when deciding whether to free the old chanctx. That lets the old chanctx be freed too early while the replacement partner still points back to it, either when the last assigned link is released or when that link successfully reassigns to another existing context. Later unreserve and switch-finalization paths can then follow a stale replace_ctx pointer. Keep a paired old chanctx alive until the replacement pair has been torn down. Apply the same check to both __ieee80211_link_release_channel() and ieee80211_link_use_reserved_reassign(). If the replacement is later abandoned, ieee80211_link_unreserve_chanctx() already tears down the pairing before freeing the old chanctx once no users remain.

osv:CVE-2026-98708

Kernel

Fixed versions: 5.10.273, 5.15.224, 6.1.191, 6.6.160, 6.12.113, 6.18.56, 7.2.10

Complete source record
{
  "id": "1572d0397b4648e3682f3a40bf4d1302bca79fc27cc110f377364e63abd7411d",
  "url": "https://osv.dev/vulnerability/CVE-2026-98708",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "wifi: mac80211: keep paired old chanctx alive",
    "summary": "In the Linux kernel, the following vulnerability has been resolved: wifi: mac80211: keep paired old chanctx alive An in-place replacement keeps reciprocal replace_ctx pointers between the old WILL_BE_REPLACED chanctx and the new REPLACES_OTHER chanctx. However, the early free paths only consider assigned and reserved link users when deciding whether to free the old chanctx. That lets the old chanctx be freed too early while the replacement partner still points back to it, either when the last assigned link is released or when that link successfully reassigns to another existing context. Later unreserve and switch-finalization paths can then follow a stale replace_ctx pointer. Keep a paired old chanctx alive until the replacement pair has been torn down. Apply the same check to both __ieee80211_link_release_channel() and ieee80211_link_use_reserved_reassign(). If the replacement is later abandoned, ieee80211_link_unreserve_chanctx() already tears down the pairing before freeing the old chanctx once no users remain.",
    "evidence": "osv:CVE-2026-98708",
    "products": [
      {
        "name": {
          "value": "Kernel",
          "evidence": "/affected/1/package/name"
        },
        "prerequisites": [],
        "fixed_versions": [
          {
            "value": "5.10.273",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "5.15.224",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "6.1.191",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "6.6.160",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "6.12.113",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "6.18.56",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "7.2.10",
            "evidence": "/affected/1/ranges"
          }
        ],
        "affected_versions": []
      }
    ],
    "severity": "unknown",
    "structured": {
      "id": "CVE-2026-98708",
      "aliases": [
        "CVE-2026-98708"
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
              "type": "GIT",
              "events": [
                {
                  "introduced": "5bcae31d9cb1ebfad3ad5a3eea04c8cdc329a04f"
                },
                {
                  "fixed": "026ae72fa6d0f7e04951441026be473f22911b87"
                },
                {
                  "fixed": "624bf5338d8c2f55db455ce4f2543ca4a83fab03"
                },
                {
                  "fixed": "0fba8fbf5ab0bffc1866e5038aaab772d31d1584"
                },
                {
                  "fixed": "47864a9092fd6f6b3f312d1e5b233ecdc68b1bd8"
                },
                {
                  "fixed": "21a688cbeae0e682f03e91f1e7a7eedd60d9d4f2"
                },
                {
                  "fixed": "1c82d0c5d509179ba2a4edfa096f516aebf960b0"
                },
                {
                  "fixed": "afd1cdd16a25c7185b812a612ab7d5f2cbd1e086"
                },
                {
                  "fixed": "3412e9a800786d1dec4a58367db1cba275e7ef11"
                }
              ]
            }
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-98708.json"
          }
        },
        {
          "ranges": [
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "3.17.0"
                },
                {
                  "fixed": "5.10.273"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "5.11.0"
                },
                {
                  "fixed": "5.15.224"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "5.16.0"
                },
                {
                  "fixed": "6.1.191"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "6.2.0"
                },
                {
                  "fixed": "6.6.160"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "6.7.0"
                },
                {
                  "fixed": "6.12.113"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "6.13.0"
                },
                {
                  "fixed": "6.18.56"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "6.19.0"
                },
                {
                  "fixed": "7.2.10"
                }
              ]
            }
          ],
          "package": {
            "name": "Kernel",
            "ecosystem": "Linux"
          },
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-98708.json"
          }
        }
      ],
      "modified": "2026-11-01T02:31:08.108371353Z",
      "provider": "osv",
      "references": [
        "https://git.kernel.org/stable/c/026ae72fa6d0f7e04951441026be473f22911b87",
        "https://git.kernel.org/stable/c/0fba8fbf5ab0bffc1866e5038aaab772d31d1584",
        "https://git.kernel.org/stable/c/1c82d0c5d509179ba2a4edfa096f516aebf960b0",
        "https://git.kernel.org/stable/c/21a688cbeae0e682f03e91f1e7a7eedd60d9d4f2",
        "https://git.kernel.org/stable/c/3412e9a800786d1dec4a58367db1cba275e7ef11",
        "https://git.kernel.org/stable/c/47864a9092fd6f6b3f312d1e5b233ecdc68b1bd8",
        "https://git.kernel.org/stable/c/624bf5338d8c2f55db455ce4f2543ca4a83fab03",
        "https://git.kernel.org/stable/c/afd1cdd16a25c7185b812a612ab7d5f2cbd1e086",
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/98xxx/CVE-2026-98708.json",
        "https://nvd.nist.gov/vuln/detail/CVE-2026-98708",
        "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git"
      ],
      "provider_metadata": {
        "cna_assigner": "Linux",
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/98xxx/CVE-2026-98708.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2026-98708",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": null
  },
  "source_id": "core-osv",
  "document_id": 504983,
  "published_at": "2026-10-18T15:46:38.475+00:00"
}