UBUNTU-CVE-2026-74441: Use After Free
In the Linux kernel, the following vulnerability has been resolved: usb: typec: ucsi: Fix race condition and ordering in port unregistration A synchronization issue exists during port unregistration where pending partner work items can race against workqueue destruction, leading to use-after-free conditions: crosecucsi crosecucsi.3.auto: error -ETIMEDOUT: PPM init failed BUG: kernel NULL pointer dereference, address: 0000000000000000 RIP: 0010:queuework+0x83/0x4a0 Call Trace: <IRQ> cfidelayedworktimerfn+0x10/0x10 runtimersoftirq+0x3b6/0xbd0 schedclockcpu+0xc/0x110 irqexitrcu+0x18d/0x330 fredsysvecapictimerinterrupt+0x5e/0x80 Fix this by ensuring strict ordering and proper serialization during teardown: 1. Move ucsiunregisterpartner() to the beginning of the teardown sequence and protect it under the connector mutex lock. 2. Ensure all pending partner tasks are explicitly flushed and finished before the workqueue is destroyed. 3. Switch from moddelayedwork() to a canceldelayedwork() and queuedelayedwork() sequence. This guarantees that items currently marked as pending won't be scheduled an additional time, preventing a double release of resources which leads to the following crash: Oops: general protection fault, probably for non-canonical address 0xdead000000000122: 0000 [#1] SMP NOPTI Workqueue: crosecucsi.3.auto-con2 ucsipollworker RIP: 0010:ucsipollworker+0x65/0x1e0 Call Trace: <TASK> processscheduledworks+0x218/0x6d0 workerthread+0x188/0x3f0 cfiworkerthread+0x10/0x10 kthread+0x226/0x2a0 To ensure these rules are applied identically across both the normal teardown and the ucsiinit() error paths, consolidate the cleanup logic into a new helper, ucsiunregisterport().
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
ubuntu/linux-hwe-7.0to a version that resolves this vulnerability.Fixed in 7.0.0-42.42~24.04.1 - Upgrade
Upgrade
ubuntu/linux-riscv-7.0to a version that resolves this vulnerability.Fixed in 7.0.0-42.42.1~24.04.1 - Upgrade
Upgrade
ubuntu/linuxto a version that resolves this vulnerability.Fixed in 7.0.0-42.42 - Upgrade
Upgrade
ubuntu/linux-awsto a version that resolves this vulnerability.Fixed in 7.0.0-1016.17 - Upgrade
Upgrade
ubuntu/linux-gcpto a version that resolves this vulnerability.Fixed in 7.0.0-1016.18 - Upgrade
Upgrade
ubuntu/linux-ibmto a version that resolves this vulnerability.Fixed in 7.0.0-1017.17 - Upgrade
Upgrade
ubuntu/linux-oem-7.0to a version that resolves this vulnerability.Fixed in 7.0.0-1017.17 - Upgrade
Upgrade
ubuntu/linux-oracleto a version that resolves this vulnerability.Fixed in 7.0.0-1015.16 - Upgrade
Upgrade
ubuntu/linux-riscvto a version that resolves this vulnerability.Fixed in 7.0.0-42.42.1 - Compensating control
During UCSI port teardown, move ucsi_unregister_partner() to the beginning of the teardown sequence under the connector mutex, replace mod_delayed_work() with cancel_delayed_work() followed by queue_delayed_work(), and consolidate the identical cleanup logic for normal teardown and ucsi_init() error paths in ucsi_unregister_port(); ensure pending partner work items are flushed and finished before destroying the workqueue.