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

media: cx23885: cancel NetUP CI work before teardown

netup_ci_exit() frees a netup_ci_state while its work item,
netup_read_ci_status(), may still be pending or running on the system
workqueue. The worker obtains the state with container_of() and
dereferences it, so it must not outlive the state.

netup_ci_init() queues the initial status read, and CI GPIO interrupts
subsequently queue the same work from netup_ci_slot_status(). During
remove, cx23885_finidev() calls free_irq() before the CI device is
unregistered. free_irq() prevents further IRQ handlers from running,
but does not drain work queued previously, so the worker can run after
netup_ci_exit() frees the state.

Call cancel_work_sync() before dvb_ca_en50221_release() and kfree().

This issue was found by an in-house static analysis tool.
Published: 2026-09-16
Score: 7.8 High
EPSS: < 1% Very Low
KEV: No
Impact: Use‑After‑Free leading to potential arbitrary code execution at kernel level
Action: Immediate Patch
AI Analysis

Impact

The vulnerability is a classic use‑after‑free error in the Linux kernel driver for cx23885. The driver frees a netup_ci_state object while a work queue still holds a reference to it. When the work queue executes the pending task, it dereferences the freed memory, allowing an attacker to tamper with kernel memory or cause a crash. This flaw can be exploited to compromise system integrity and potentially gain privileged execution.

Affected Systems

The issue affects the Linux kernel and all kernel versions that contain the cx23885 media driver without the described fix. The exact kernel package names are not listed, but any installation that ships the vulnerable media driver is at risk.

Risk and Exploitability

The CVSS score of 7.8 indicates high severity. The EPSS score is below 1%, suggesting low current exploitation probability. The vulnerability is not yet listed in CISA’s KEV catalog. The likely attack vector is local: an attacker must be able to trigger the netup_ci_driver through userspace or hardware interaction, after which the kernel can crash or execute arbitrary code. The impact scope is system‑wide, affecting all processes running on the kernel. Routine updates are the recommended mitigation, as the kernel patch removes the race condition by cancelling work before freeing the state.

Generated by OpenCVE AI on September 18, 2026 at 09:24 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade to the latest Linux kernel version that incorporates the fix for cx23885.
  • If upgrade is not possible, apply the patch from the Linux kernel repositories to cancel work items before freeing the state. (See the merge commits linked in the references.)
  • As an interim measure, ensure that any custom drivers or applications that use the cx23885 module call cancel_work_sync on pending work before cleanup operations.

Generated by OpenCVE AI on September 18, 2026 at 09:24 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

Fri, 18 Sep 2026 09:45:00 +0000

Type Values Removed Values Added
Weaknesses CWE-416

Wed, 16 Sep 2026 14:45:00 +0000

Type Values Removed Values Added
Metrics cvssV3_1

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


Wed, 16 Sep 2026 10:45:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: media: cx23885: cancel NetUP CI work before teardown netup_ci_exit() frees a netup_ci_state while its work item, netup_read_ci_status(), may still be pending or running on the system workqueue. The worker obtains the state with container_of() and dereferences it, so it must not outlive the state. netup_ci_init() queues the initial status read, and CI GPIO interrupts subsequently queue the same work from netup_ci_slot_status(). During remove, cx23885_finidev() calls free_irq() before the CI device is unregistered. free_irq() prevents further IRQ handlers from running, but does not drain work queued previously, so the worker can run after netup_ci_exit() frees the state. Call cancel_work_sync() before dvb_ca_en50221_release() and kfree(). This issue was found by an in-house static analysis tool.
Title media: cx23885: cancel NetUP CI work before teardown
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-09-16T14:39:43.386Z

Reserved: 2026-09-11T19:38:34.773Z

Link: CVE-2026-89893

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-09-16T11:16:58.000

Modified: 2026-09-16T15:18:15.647

Link: CVE-2026-89893

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-09-18T20:15:14Z

Weaknesses