CVE-2026-97599 (GCVE-0-2026-97599)

Vulnerability from cvelistv5 – Published: 2026-09-25 10:22 – Updated: 2026-09-25 10:22
VLAI
Title
ieee802154: hwsim: serialize pib updates to fix double-free
Summary
In the Linux kernel, the following vulnerability has been resolved: ieee802154: hwsim: serialize pib updates to fix double-free hwsim_update_pib() does an unserialized read-swap-free of phy->pib: pib_old = rtnl_dereference(phy->pib); ... rcu_assign_pointer(phy->pib, pib); kfree_rcu(pib_old, rcu); It assumes the RTNL is held, but ->set_channel is not always called under it: the mac802154 scan worker changes channels via drv_set_channel() without the RTNL. Such an update can race an RTNL-held one on the same phy; both read the same pib_old and both kfree_rcu() it, double-freeing the object. With SLUB percpu sheaves batching kfree_rcu(), this surfaces as a KASAN invalid-free in rcu_free_sheaf(). struct hwsim_phy has no lock for pib. Add one and make the swap atomic with rcu_replace_pointer() under it, dropping the misleading rtnl_dereference().
Severity
No CVSS data available.
Impacted products
Vendor Product Version CPE status
Linux Linux Affected: f25da51fdc381ca2863248c7060b3662632f0872 , < 9973b3a67a7592a780ea12b08334539a900deec1 (git)
Affected: f25da51fdc381ca2863248c7060b3662632f0872 , < d3b8f264ce09573aededd0a97dc41c8147797d8f (git)
Affected: f25da51fdc381ca2863248c7060b3662632f0872 , < db6442deecb1f13aeaf4f9d77746ea7555630fb3 (git)
Affected: f25da51fdc381ca2863248c7060b3662632f0872 , < 979d5b8de8ed4e1f997aef12da5694b99be7b871 (git)
guessed Create a notification for this product.
Linux Linux Affected: 4.19
Unaffected: 0 , < 4.19 (semver)
Unaffected: 6.12.111 , ≤ 6.12.* (semver)
Unaffected: 6.18.53 , ≤ 6.18.* (semver)
Unaffected: 7.2.7 , ≤ 7.2.* (semver)
Unaffected: 7.3-rc3 , ≤ * (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/ieee802154/mac802154_hwsim.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "9973b3a67a7592a780ea12b08334539a900deec1",
              "status": "affected",
              "version": "f25da51fdc381ca2863248c7060b3662632f0872",
              "versionType": "git"
            },
            {
              "lessThan": "d3b8f264ce09573aededd0a97dc41c8147797d8f",
              "status": "affected",
              "version": "f25da51fdc381ca2863248c7060b3662632f0872",
              "versionType": "git"
            },
            {
              "lessThan": "db6442deecb1f13aeaf4f9d77746ea7555630fb3",
              "status": "affected",
              "version": "f25da51fdc381ca2863248c7060b3662632f0872",
              "versionType": "git"
            },
            {
              "lessThan": "979d5b8de8ed4e1f997aef12da5694b99be7b871",
              "status": "affected",
              "version": "f25da51fdc381ca2863248c7060b3662632f0872",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "drivers/net/ieee802154/mac802154_hwsim.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "4.19"
            },
            {
              "lessThan": "4.19",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.12.*",
              "status": "unaffected",
              "version": "6.12.111",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.18.*",
              "status": "unaffected",
              "version": "6.18.53",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "7.2.*",
              "status": "unaffected",
              "version": "7.2.7",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "7.3-rc3",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.12.111",
                  "versionStartIncluding": "4.19",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.18.53",
                  "versionStartIncluding": "4.19",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.2.7",
                  "versionStartIncluding": "4.19",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.3-rc3",
                  "versionStartIncluding": "4.19",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nieee802154: hwsim: serialize pib updates to fix double-free\n\nhwsim_update_pib() does an unserialized read-swap-free of phy-\u003epib:\n\n\tpib_old = rtnl_dereference(phy-\u003epib);\n\t...\n\trcu_assign_pointer(phy-\u003epib, pib);\n\tkfree_rcu(pib_old, rcu);\n\nIt assumes the RTNL is held, but -\u003eset_channel is not always called\nunder it: the mac802154 scan worker changes channels via\ndrv_set_channel() without the RTNL. Such an update can race an\nRTNL-held one on the same phy; both read the same pib_old and both\nkfree_rcu() it, double-freeing the object. With SLUB percpu sheaves\nbatching kfree_rcu(), this surfaces as a KASAN invalid-free in\nrcu_free_sheaf().\n\nstruct hwsim_phy has no lock for pib. Add one and make the swap atomic\nwith rcu_replace_pointer() under it, dropping the misleading\nrtnl_dereference()."
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-09-25T10:22:13.606Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/9973b3a67a7592a780ea12b08334539a900deec1"
        },
        {
          "url": "https://git.kernel.org/stable/c/d3b8f264ce09573aededd0a97dc41c8147797d8f"
        },
        {
          "url": "https://git.kernel.org/stable/c/db6442deecb1f13aeaf4f9d77746ea7555630fb3"
        },
        {
          "url": "https://git.kernel.org/stable/c/979d5b8de8ed4e1f997aef12da5694b99be7b871"
        }
      ],
      "title": "ieee802154: hwsim: serialize pib updates to fix double-free",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2026-97599",
    "datePublished": "2026-09-25T10:22:13.606Z",
    "dateReserved": "2026-09-24T16:01:01.157Z",
    "dateUpdated": "2026-09-25T10:22:13.606Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2026-97599",
      "date": "2026-09-28",
      "epss": "0.002",
      "percentile": "0.08799"
    },
    "microsoft_vex": {
      "current_release_date": "2026-09-28T02:05:45.000Z",
      "cve": "CVE-2026-97599",
      "id": "msrc_CVE-2026-97599",
      "initial_release_date": "2026-09-28T02:05:45.000Z",
      "product_status:known_affected": "1",
      "source": "Microsoft CSAF VEX",
      "status": "final",
      "title": "ieee802154: hwsim: serialize pib updates to fix double-free",
      "url": "https://msrc.microsoft.com/csaf/vex/2026/msrc_cve-2026-97599.json",
      "version": "1"
    },
    "nvd": {
      "cve": {
        "affected": [
          {
            "affectedData": [
              {
                "defaultStatus": "unaffected",
                "product": "Linux",
                "programFiles": [
                  "drivers/net/ieee802154/mac802154_hwsim.c"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "lessThan": "9973b3a67a7592a780ea12b08334539a900deec1",
                    "status": "affected",
                    "version": "f25da51fdc381ca2863248c7060b3662632f0872",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "d3b8f264ce09573aededd0a97dc41c8147797d8f",
                    "status": "affected",
                    "version": "f25da51fdc381ca2863248c7060b3662632f0872",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "db6442deecb1f13aeaf4f9d77746ea7555630fb3",
                    "status": "affected",
                    "version": "f25da51fdc381ca2863248c7060b3662632f0872",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "979d5b8de8ed4e1f997aef12da5694b99be7b871",
                    "status": "affected",
                    "version": "f25da51fdc381ca2863248c7060b3662632f0872",
                    "versionType": "git"
                  }
                ]
              },
              {
                "defaultStatus": "affected",
                "product": "Linux",
                "programFiles": [
                  "drivers/net/ieee802154/mac802154_hwsim.c"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "status": "affected",
                    "version": "4.19"
                  },
                  {
                    "lessThan": "4.19",
                    "status": "unaffected",
                    "version": "0",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "6.12.*",
                    "status": "unaffected",
                    "version": "6.12.111",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "6.18.*",
                    "status": "unaffected",
                    "version": "6.18.53",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "7.2.*",
                    "status": "unaffected",
                    "version": "7.2.7",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "*",
                    "status": "unaffected",
                    "version": "7.3-rc3",
                    "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\nieee802154: hwsim: serialize pib updates to fix double-free\n\nhwsim_update_pib() does an unserialized read-swap-free of phy-\u003epib:\n\n\tpib_old = rtnl_dereference(phy-\u003epib);\n\t...\n\trcu_assign_pointer(phy-\u003epib, pib);\n\tkfree_rcu(pib_old, rcu);\n\nIt assumes the RTNL is held, but -\u003eset_channel is not always called\nunder it: the mac802154 scan worker changes channels via\ndrv_set_channel() without the RTNL. Such an update can race an\nRTNL-held one on the same phy; both read the same pib_old and both\nkfree_rcu() it, double-freeing the object. With SLUB percpu sheaves\nbatching kfree_rcu(), this surfaces as a KASAN invalid-free in\nrcu_free_sheaf().\n\nstruct hwsim_phy has no lock for pib. Add one and make the swap atomic\nwith rcu_replace_pointer() under it, dropping the misleading\nrtnl_dereference()."
          }
        ],
        "id": "CVE-2026-97599",
        "lastModified": "2026-09-25T11:17:11.243",
        "metrics": {},
        "published": "2026-09-25T11:17:11.243",
        "references": [
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/979d5b8de8ed4e1f997aef12da5694b99be7b871"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/9973b3a67a7592a780ea12b08334539a900deec1"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/d3b8f264ce09573aededd0a97dc41c8147797d8f"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/db6442deecb1f13aeaf4f9d77746ea7555630fb3"
          }
        ],
        "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "vulnStatus": "Received"
      }
    }
  }
}



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…