7.8
CVE-2026-64329
- EPSS 0.18%
- Veröffentlicht 25.07.2026 08:49:57
- Zuletzt bearbeitet 04.09.2026 14:50:26
- Erkennungen
usb: typec: ucsi: ccg: Fix use-after-free of ucsi on remove
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.Daten sind bereitgestellt durch National Vulnerability Database (NVD)
Linux ≫ Linux Kernel Version >= 5.5 < 5.10.261
Linux ≫ Linux Kernel Version >= 5.11 < 5.15.212
Linux ≫ Linux Kernel Version >= 5.16 < 6.1.178
Linux ≫ Linux Kernel Version >= 6.2 < 6.6.145
Linux ≫ Linux Kernel Version >= 6.7 < 6.12.96
Linux ≫ Linux Kernel Version >= 6.13 < 6.18.39
Linux ≫ Linux Kernel Version >= 6.19 < 7.1.4
Linux ≫ Linux Kernel Version 7.2 Update rc1
Linux ≫ Linux Kernel Version 7.2 Update rc2
VulnDex Vulnerability Enrichment
| Typ | Quelle | Score | Percentile |
|---|---|---|---|
| EPSS | FIRST.org | 0.18% | 0.075 |
| Quelle | Base Score | Exploit Score | Impact Score | Vector String |
|---|---|---|---|---|
| NIST | 7.8 | 1.8 | 5.9 |
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
|
CWE-416 Use After Free
The product reuses or references memory after it has been freed. At some point afterward, the memory may be allocated again and saved in another pointer, while the original pointer references a location somewhere within the new allocation. Any operations using the original pointer are no longer valid because the memory "belongs" to the code that operates on the new pointer.
https://git.kernel.org/stable/c/f1adeb1ff8bef1467d6961059810795d02bbad5d
https://git.kernel.org/stable/c/99381e762273a2410a3f0216000be32b013c0ea9
https://git.kernel.org/stable/c/1a160076d3d0dcd4a98a4599ad96eec0790b099b
https://git.kernel.org/stable/c/c32df11147822d22facee8fa30c2e8971d12f426
https://git.kernel.org/stable/c/86c9ee928c4a370e323e432aaf8dca79c4ba7c85
https://git.kernel.org/stable/c/f5c772b76bbd95de8be51cf849c6098f6af6fcf9
https://git.kernel.org/stable/c/dbb500bad02146b388041877574829016591ddc8
https://git.kernel.org/stable/c/1f0bdc2884b67de337215079bba166df0cdf4ac5