KernelScan.io

HIGH

cec TransmitMsg UAF

CVE-2026-89899

CVSS 7.8 / 10.0 NVD

CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

KernelScan AI7.0HIGH

01

In the Linux kernel, the following vulnerability has been resolved: media: cec: disable delayed work before freeing an interrupted transmit cec_transmit_msg_fh() drops adap->lock to wait for a blocking transmit in wait_for_completion_killable(). If that wait is interrupted by a signal, cancel_delayed_work_sync() can run before the CEC kthread arms the reply timeout via schedule_delayed_work(&data->work) in cec_transmit_done_ts(). The work is then armed after the cancel, and the data is freed with its delayed_work still pending: ODEBUG: free active (active state 0) object: ... hint: cec_wait_timeout Use disable_delayed_work_sync(): it cancels the work and disables it, so the later schedule_delayed_work() becomes a no-op and the work cannot be re-armed. The data is freed right after, so it need not be re-enabled.

02

Engine v0.6.0

Risk summary

A local user with access to a CEC device can exploit a race condition between signal-interrupted transmit cleanup and delayed work scheduling, leading to use-after-free memory corruption with potential privilege escalation or denial of service.

Affecteddrivers/media/cec/core/cec-adap.c (media: cec)

Vulnerability analysis

When a blocking CEC transmit is interrupted by a signal, cleanup can race with a background kernel thread that schedules a delayed timeout. The timeout may be scheduled after cleanup has already tried to cancel it, leaving the timeout pending on memory that is then freed. The fix prevents the timeout from being scheduled after cancellation, so the memory can be freed safely. The issue can be triggered by any local process with access to a CEC device node, typically requiring membership in the video group or equivalent device permissions.

03

BranchIntroducedFixed inPatch commit
4.184.18.194.199a951931d4b4
4.194.19.24.20a3adb63b1219
6.12—6.12.1109c6ceb094922
6.18—6.18.510fbd5c232702
7.2—7.2.5—
mainline—7.3—
cip/6.12—6.12.111-cip329a951931d4b4

04

State of the newest release of each Civil Infrastructure Platform SLTS tree, from CIP's own fix records.

CIP treeState
cip/6.12Fixed in 6.12.111-cip32
cip/4.19Affected — no CIP fix yet (latest 4.19.325-cip136)
cip/4.19-rtAffected — no CIP fix yet (latest 4.19.325-cip136-rt50)