← Back to CVE Explorer

CVE-2026-98708

Full vulnerability record from the local CVENow database.

Description

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.

Severity
Not scored
CVSS score
Not available
Vulnerability status
Received
Source identifier
416baaa9-dc9f-4396-8d5f-8c081fb06d67
Published
2026-10-18 16:17:24.337000
Last modified
2026-10-30 13:21:20.173000
View original CVE JSON
{
  "id": "CVE-2026-98708",
  "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
  "published": "2026-10-18T16:17:24.337",
  "lastModified": "2026-10-30T13:21:20.173",
  "vulnStatus": "Received",
  "cveTags": [],
  "descriptions": [
    {
      "lang": "en",
      "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nwifi: mac80211: keep paired old chanctx alive\n\nAn in-place replacement keeps reciprocal replace_ctx pointers between\nthe old WILL_BE_REPLACED chanctx and the new REPLACES_OTHER chanctx.\nHowever, the early free paths only consider assigned and reserved link\nusers when deciding whether to free the old chanctx.\n\nThat lets the old chanctx be freed too early while the replacement\npartner still points back to it, either when the last assigned link is\nreleased or when that link successfully reassigns to another existing\ncontext. Later unreserve and switch-finalization paths can then follow a\nstale replace_ctx pointer.\n\nKeep a paired old chanctx alive until the replacement pair has been torn\ndown. Apply the same check to both __ieee80211_link_release_channel()\nand ieee80211_link_use_reserved_reassign(). If the replacement is later\nabandoned, ieee80211_link_unreserve_chanctx() already tears down the\npairing before freeing the old chanctx once no users remain."
    }
  ],
  "affected": [
    {
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
      "affectedData": [
        {
          "vendor": "Linux",
          "product": "Linux",
          "defaultStatus": "unaffected",
          "programFiles": [
            "net/mac80211/chan.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "versions": [
            {
              "version": "5bcae31d9cb1ebfad3ad5a3eea04c8cdc329a04f",
              "lessThan": "026ae72fa6d0f7e04951441026be473f22911b87",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "5bcae31d9cb1ebfad3ad5a3eea04c8cdc329a04f",
              "lessThan": "624bf5338d8c2f55db455ce4f2543ca4a83fab03",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "5bcae31d9cb1ebfad3ad5a3eea04c8cdc329a04f",
              "lessThan": "0fba8fbf5ab0bffc1866e5038aaab772d31d1584",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "5bcae31d9cb1ebfad3ad5a3eea04c8cdc329a04f",
              "lessThan": "47864a9092fd6f6b3f312d1e5b233ecdc68b1bd8",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "5bcae31d9cb1ebfad3ad5a3eea04c8cdc329a04f",
              "lessThan": "21a688cbeae0e682f03e91f1e7a7eedd60d9d4f2",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "5bcae31d9cb1ebfad3ad5a3eea04c8cdc329a04f",
              "lessThan": "1c82d0c5d509179ba2a4edfa096f516aebf960b0",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "5bcae31d9cb1ebfad3ad5a3eea04c8cdc329a04f",
              "lessThan": "afd1cdd16a25c7185b812a612ab7d5f2cbd1e086",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "5bcae31d9cb1ebfad3ad5a3eea04c8cdc329a04f",
              "lessThan": "3412e9a800786d1dec4a58367db1cba275e7ef11",
              "versionType": "git",
              "status": "affected"
            }
          ]
        },
        {
          "vendor": "Linux",
          "product": "Linux",
          "defaultStatus": "affected",
          "programFiles": [
            "net/mac80211/chan.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "versions": [
            {
              "version": "3.17",
              "status": "affected"
            },
            {
              "version": "0",
              "lessThan": "3.17",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "5.10.273",
              "lessThanOrEqual": "5.10.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "5.15.224",
              "lessThanOrEqual": "5.15.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "6.1.191",
              "lessThanOrEqual": "6.1.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "6.6.160",
              "lessThanOrEqual": "6.6.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "6.12.113",
              "lessThanOrEqual": "6.12.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "6.18.56",
              "lessThanOrEqual": "6.18.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "7.2.10",
              "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/026ae72fa6d0f7e04951441026be473f22911b87",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/0fba8fbf5ab0bffc1866e5038aaab772d31d1584",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/1c82d0c5d509179ba2a4edfa096f516aebf960b0",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/21a688cbeae0e682f03e91f1e7a7eedd60d9d4f2",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/3412e9a800786d1dec4a58367db1cba275e7ef11",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/47864a9092fd6f6b3f312d1e5b233ecdc68b1bd8",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/624bf5338d8c2f55db455ce4f2543ca4a83fab03",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/afd1cdd16a25c7185b812a612ab7d5f2cbd1e086",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    }
  ]
}