Description
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().
Published: 2026-09-25
Score: 5.5 Medium
EPSS: < 1% Very Low
KEV: No
Impact: Memory corruption from a double-free in the ieee802154 hwsim driver
Action: Apply Patch
AI Analysis

Impact

The vulnerability is a double-free bug in the IEEE 802.15.4 hwsim driver. When a Physical Information Base (PIB) is updated without serialization, two concurrent operations can free the same memory region. This leads to kernel memory corruption and potential system instability or denial of service.

Affected Systems

All Linux kernel releases that contain the unpatched hwsim driver source are affected. No specific kernel version range is provided in the CVE data, so any kernel that includes the vulnerable code could be impacted.

Risk and Exploitability

The CVSS score of 5.5 indicates a moderate severity. The EPSS score is less than 1 % and the vulnerability is not listed in the CISA KEV catalog, implying a low likelihood of exploitation. The attack scenario described requires a race condition between a RTNL‑held PIB update and a driver channel change performed without RTNL protection; based on this description it is inferred that the required conditions are typically local or involve privileged operations, but the CVE data does not explicitly state the attack vector or privilege level.

Generated by OpenCVE AI on October 1, 2026 at 12:01 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Apply the kernel patch that serializes PIB updates, such as the commit referenced in the advisories.
  • If updating the kernel is not possible, disable the ieee802154 hwsim module or prevent it from loading in your environment.
  • As a temporary measure, avoid performing operations that trigger mac802154 scans or channel changes without holding the RTNL lock, or ensure that channel changes are protected by the serialization lock introduced by the patch.

Generated by OpenCVE AI on October 1, 2026 at 12:01 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Debian DLA Debian DLA DLA-4817-1 linux-6.12 security update
Debian DSA Debian DSA DSA-6528-1 linux security update
History

Sat, 03 Oct 2026 11:15:00 +0000


Thu, 01 Oct 2026 09:30:00 +0000

Type Values Removed Values Added
Weaknesses CWE-362
CWE-415

Wed, 30 Sep 2026 00:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-1341
References
Metrics threat_severity

None

cvssV3_1

{'score': 5.5, 'vector': 'CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H'}

threat_severity

Moderate


Fri, 25 Sep 2026 14:00:00 +0000

Type Values Removed Values Added
Weaknesses CWE-362
CWE-415

Fri, 25 Sep 2026 10:30:00 +0000

Type Values Removed Values Added
Description 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().
Title ieee802154: hwsim: serialize pib updates to fix double-free
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-10-19T09:10:02.984Z

Reserved: 2026-09-24T16:01:01.157Z

Link: CVE-2026-97599

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-09-25T11:17:11.243

Modified: 2026-10-19T10:17:29.587

Link: CVE-2026-97599

cve-icon Redhat

Severity : Moderate

Publid Date: 2026-09-25T00:00:00Z

Links: CVE-2026-97599 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-10-01T12:15:05Z

Weaknesses
  • CWE-1341

    Multiple Releases of Same Resource or Handle