Description
In the Linux kernel, the following vulnerability has been resolved:

ieee802154: cc2520: fix FIFOP work use-after-free

The FIFOP interrupt handler queues cc2520_fifop_irqwork. On removal,
cc2520_remove() only flushes the work. The devm-managed FIFOP IRQ
remains active until after ->remove() returns and can queue the work
again after that flush, allowing it to run after the private data is
released.

Disable the work with disable_work_sync() instead of flushing it, so
the handler can no longer queue it once removal begins. Destroy the
buffer mutex last, since the worker and the stop callback invoked
through ieee802154_unregister_hw() both take it.

Found by an in-house static analysis tool.
Published: 2026-09-25
Score: 5.5 Medium
EPSS: < 1% Very Low
KEV: No
Impact: Use‑After‑Free that may lead to a kernel crash or privilege escalation
Action: Apply Patch
AI Analysis

Impact

The Linux kernel’s cc2520 IEEE802154 driver contains a use‑after‑free defect in the FIFOP interrupt handler. During device removal, the driver flushes pending work but does not disable the work queue, allowing the interrupt handler to enqueue the same work again after the flush. The worker then executes after the driver’s private data has been freed, corrupting kernel memory and potentially causing a panic or enabling code execution. Based on the description, it is inferred that an attacker would need local access to the device to trigger removal or active traffic to stimulate the handler.

Affected Systems

Any system running a Linux kernel that includes the cc2520 driver prior to the commit that introduced disable_work_sync() (identified by 56a9919) is affected. Versions compiled with the legacy driver, regardless of kernel major release, must be verified for the presence of the fix or the upstream patch. The vulnerability is specific to the cc2520 radio module within the ieee802154 subsystem.

Risk and Exploitability

The flaw has a CVSS score of 5.5, indicating moderate severity. The EPSS score is reported as <1%, showing a very low projected exploitation probability, and the vulnerability is not listed in the CISA KEV catalog. The likely attack vector involves a local user with privileged access to the device; it is inferred that the attacker would cause device removal or active traffic to trigger the handler. Because the bug is a classic use‑after‑free, successful exploitation could lead to a kernel panic or privilege escalation should an attacker manage to influence the memory state.

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 replaces flush with disable_work_sync() (commit 56a9919d8494fb118eebf167bef0622528fbf2e7) to all affected kernels.
  • Upgrade to a kernel version that incorporates the fix or rebuild the cc2520 driver module from the updated source.
  • If the CC2520 radio is unnecessary, disable or remove the device from the system.

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

Wed, 21 Oct 2026 13:15:00 +0000


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

Type Values Removed Values Added
Weaknesses CWE-416

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

Type Values Removed Values Added
Weaknesses CWE-825
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-416

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: cc2520: fix FIFOP work use-after-free The FIFOP interrupt handler queues cc2520_fifop_irqwork. On removal, cc2520_remove() only flushes the work. The devm-managed FIFOP IRQ remains active until after ->remove() returns and can queue the work again after that flush, allowing it to run after the private data is released. Disable the work with disable_work_sync() instead of flushing it, so the handler can no longer queue it once removal begins. Destroy the buffer mutex last, since the worker and the stop callback invoked through ieee802154_unregister_hw() both take it. Found by an in-house static analysis tool.
Title ieee802154: cc2520: fix FIFOP work use-after-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-21T12:53:24.716Z

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

Link: CVE-2026-97600

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

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

Modified: 2026-10-21T13:21:14.597

Link: CVE-2026-97600

cve-icon Redhat

Severity : Moderate

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

Links: CVE-2026-97600 - Bugzilla

cve-icon OpenCVE Enrichment

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

Weaknesses
  • CWE-825

    Expired Pointer Dereference