usb: typec: ucsi: ccg: Fix use-after-free of ucsi on remove
Summary
| CVE | CVE-2026-64329 |
|---|---|
| State | PUBLISHED |
| Assigner | Linux |
| Source Priority | CVE Program / NVD first with legacy fallback |
| Published | 2026-07-25 10:17:14 UTC |
| Updated | 2026-07-25 10:17:14 UTC |
| Description | In the Linux kernel, the following vulnerability has been resolved: usb: typec: ucsi: ccg: Fix use-after-free of ucsi on remove The threaded IRQ handler ccg_irq_handler() calls ucsi_notify_common(), which on a connector-change event calls ucsi_connector_change() and schedules connector work. In ucsi_ccg_remove(), ucsi_destroy() frees uc->ucsi (kfree) before free_irq() is called, so a handler invocation already in flight may access the freed object after ucsi_destroy(). CPU 0 (remove) | CPU 1 (threaded IRQ) ucsi_destroy(uc->ucsi) | ccg_irq_handler() kfree(ucsi) // FREE | ucsi_notify_common(uc->ucsi) // USE Move free_irq() before ucsi_destroy() in the remove path. It is kept after ucsi_unregister(): ucsi_unregister() cancels connector work whose handler issues GET_CONNECTOR_STATUS through ucsi_send_command_common(), which waits for a completion that is signalled from the IRQ handler, so the IRQ must stay active until that work has been cancelled. The probe error path already orders free_irq() before ucsi_destroy(). This bug was found by static analysis. |
Risk And Classification
EPSS: 0.001770000 probability, percentile 0.075020000 (date 2026-07-28)
Vendor Declared Affected Products
| Source | Vendor | Product | Version | Platforms |
|---|---|---|---|---|
| CNA | Linux | Linux | affected e32fd989ac1c45f993fbe89ad0a89aa9ea6993d2 f1adeb1ff8bef1467d6961059810795d02bbad5d git | Not specified |
| CNA | Linux | Linux | affected e32fd989ac1c45f993fbe89ad0a89aa9ea6993d2 99381e762273a2410a3f0216000be32b013c0ea9 git | Not specified |
| CNA | Linux | Linux | affected e32fd989ac1c45f993fbe89ad0a89aa9ea6993d2 1a160076d3d0dcd4a98a4599ad96eec0790b099b git | Not specified |
| CNA | Linux | Linux | affected e32fd989ac1c45f993fbe89ad0a89aa9ea6993d2 c32df11147822d22facee8fa30c2e8971d12f426 git | Not specified |
| CNA | Linux | Linux | affected e32fd989ac1c45f993fbe89ad0a89aa9ea6993d2 86c9ee928c4a370e323e432aaf8dca79c4ba7c85 git | Not specified |
| CNA | Linux | Linux | affected e32fd989ac1c45f993fbe89ad0a89aa9ea6993d2 f5c772b76bbd95de8be51cf849c6098f6af6fcf9 git | Not specified |
| CNA | Linux | Linux | affected e32fd989ac1c45f993fbe89ad0a89aa9ea6993d2 dbb500bad02146b388041877574829016591ddc8 git | Not specified |
| CNA | Linux | Linux | affected e32fd989ac1c45f993fbe89ad0a89aa9ea6993d2 1f0bdc2884b67de337215079bba166df0cdf4ac5 git | Not specified |
| CNA | Linux | Linux | affected 5.5 | Not specified |
| CNA | Linux | Linux | unaffected 5.5 semver | Not specified |
| CNA | Linux | Linux | unaffected 5.10.261 5.10.* semver | Not specified |
| CNA | Linux | Linux | unaffected 5.15.212 5.15.* semver | Not specified |
| CNA | Linux | Linux | unaffected 6.1.178 6.1.* semver | Not specified |
| CNA | Linux | Linux | unaffected 6.6.145 6.6.* semver | Not specified |
| CNA | Linux | Linux | unaffected 6.12.96 6.12.* semver | Not specified |
| CNA | Linux | Linux | unaffected 6.18.39 6.18.* semver | Not specified |
| CNA | Linux | Linux | unaffected 7.1.4 7.1.* semver | Not specified |
| CNA | Linux | Linux | unaffected 7.2-rc3 * original_commit_for_fix | Not specified |
References
| Reference | Source | Link | Tags |
|---|---|---|---|
| git.kernel.org/stable/c/1f0bdc2884b67de337215079bba166df0cdf4ac5 | 416baaa9-dc9f-4396-8d5f-8c081fb06d67 | git.kernel.org | |
| git.kernel.org/stable/c/dbb500bad02146b388041877574829016591ddc8 | 416baaa9-dc9f-4396-8d5f-8c081fb06d67 | git.kernel.org | |
| git.kernel.org/stable/c/f1adeb1ff8bef1467d6961059810795d02bbad5d | 416baaa9-dc9f-4396-8d5f-8c081fb06d67 | git.kernel.org | |
| git.kernel.org/stable/c/86c9ee928c4a370e323e432aaf8dca79c4ba7c85 | 416baaa9-dc9f-4396-8d5f-8c081fb06d67 | git.kernel.org | |
| git.kernel.org/stable/c/f5c772b76bbd95de8be51cf849c6098f6af6fcf9 | 416baaa9-dc9f-4396-8d5f-8c081fb06d67 | git.kernel.org | |
| git.kernel.org/stable/c/99381e762273a2410a3f0216000be32b013c0ea9 | 416baaa9-dc9f-4396-8d5f-8c081fb06d67 | git.kernel.org | |
| git.kernel.org/stable/c/1a160076d3d0dcd4a98a4599ad96eec0790b099b | 416baaa9-dc9f-4396-8d5f-8c081fb06d67 | git.kernel.org | |
| git.kernel.org/stable/c/c32df11147822d22facee8fa30c2e8971d12f426 | 416baaa9-dc9f-4396-8d5f-8c081fb06d67 | git.kernel.org | |
| CVE Program record | CVE.ORG | www.cve.org | canonical |
| NVD vulnerability detail | NVD | nvd.nist.gov | canonical, analysis |
No vendor comments have been submitted for this CVE.
There are currently no legacy QID mappings associated with this CVE.