In the Linux kernel, the following vulnerability has been resolved:
cxl/port: Fix delete_endpoint() vs parent unregistration race
The CXL subsystem, at cxl_mem ->probe() time, establishes a lineage of ports (struct cxl_port objects) between an endpoint and the root of a CXL topology. Each port including the endpoint port is attached to the cxl_port driver.
Given that setup, it follows that when either any port in that lineage goes through a cxl_port ->remove() event, or the memdev goes through a cxl_mem ->remove() event. The hierarchy below the removed port, or the entire hierarchy if the memdev is removed needs to come down.
The delete_endpoint() callback is careful to check whether it is being called to tear down the hierarchy, or if it is only being called to teardown the memdev because an ancestor port is going through ->remove().
That care needs to take the device_lock() of the endpoint's parent. Which requires 2 bugs to be fixed:
1/ A reference on the parent is needed to prevent use-after-free scenarios like this signature:
BUG: spinlock bad magic on CPU#0, kworker/u56:0/11 Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS edk2-20230524-3.fc38 05/24/2023 Workqueue: cxl_port detach_memdev [cxl_core] RIP: 0010:spin_bug+0x65/0xa0 Call Trace: do_raw_spin_lock+0x69/0xa0 __mutex_lock+0x695/0xb80 delete_endpoint+0xad/0x150 [cxl_core] devres_release_all+0xb8/0x110 device_unbind_cleanup+0xe/0x70 device_release_driver_internal+0x1d2/0x210 detach_memdev+0x15/0x20 [cxl_core] process_one_work+0x1e3/0x4c0 worker_thread+0x1dd/0x3d0
2/ In the case of RCH topologies, the parent device that needs to be locked is not always @port->dev as returned by cxl_mem_find_port(), use endpoint->dev.parent instead.
| Product | Vendor Advisory | Solution File | Added | Published |
|---|---|---|---|---|
| Alma_linux | — | Upgrade kernel-toolsUpgrade kernel-rt-debug-coreUpgrade kernel-zfcpdump-modules-extraUpgrade kernel-zfcpdump-devel-matchedUpgrade kernel-debug-modulesUpgrade bpftoolUpgrade kernel-rt-debug-modulesUpgrade kernel-debug-modules-coreUpgrade kernel-debugUpgrade kernel-rtUpgrade kernel-64k-debug-coreUpgrade kernel-64k-debug-devel-matchedUpgrade kernel-develUpgrade kernel-tools-libsUpgrade python3-perfUpgrade kernel-rt-debugUpgrade kernel-debug-coreUpgrade kernel-rt-develUpgrade kernel-zfcpdumpUpgrade kernel-rt-modulesUpgrade kernel-64k-debug-modulesUpgrade kernelUpgrade kernel-64k-modules-extraUpgrade kernel-64k-develUpgrade kernel-cross-headersUpgrade kernel-64k-debug-develUpgrade kernel-coreUpgrade kernel-64k-debug-modules-coreUpgrade kernel-64k-modulesUpgrade kernel-debug-uki-virtUpgrade kernel-64k-modules-coreUpgrade kernel-rt-coreUpgrade kernel-modules-extraUpgrade rvUpgrade kernel-64kUpgrade kernel-rt-modules-extraUpgrade kernel-rt-debug-develUpgrade kernel-abi-stablelistsUpgrade kernel-headersUpgrade kernel-debug-develUpgrade kernel-zfcpdump-develUpgrade libperfUpgrade kernel-devel-matchedUpgrade perfUpgrade kernel-64k-debug-modules-extraUpgrade kernel-modulesUpgrade kernel-debug-modules-extraUpgrade kernel-zfcpdump-coreUpgrade kernel-tools-libs-develUpgrade rtlaUpgrade kernel-rt-modules-coreUpgrade kernel-debug-devel-matchedUpgrade kernel-64k-debugUpgrade kernel-zfcpdump-modules-coreUpgrade kernel-docUpgrade kernel-zfcpdump-modulesUpgrade kernel-rt-debug-modules-extraUpgrade kernel-rt-debug-modules-coreUpgrade kernel-uki-virtUpgrade kernel-modules-coreUpgrade kernel-64k-devel-matchedUpgrade kernel-64k-core | Nov 4, 2024 | May 21, 2024 |
| Debian | — | Upgrade linux | May 15, 2025 | May 21, 2024 |
| Oracle_linux | — | Upgrade kernel | Oct 16, 2024 | May 21, 2024 |
| Redhat_linux | — | No solution existsUpgrade kernelUpgrade kernel-rt | Sep 13, 2024 | May 21, 2024 |
| Suse | — | Upgrade dtb-exynosUpgrade kernel-azure-vdsoUpgrade kselftests-kmp-64kbUpgrade kernel-sourceUpgrade kernel-devel-azureUpgrade kernel-default-livepatchUpgrade kernel-rt-optionalUpgrade kernel-macrosUpgrade cluster-md-kmp-defaultUpgrade kselftests-kmp-azureUpgrade dtb-amlogicUpgrade kernel-syms-rtUpgrade ocfs2-kmp-64kbUpgrade kernel-azureUpgrade kernel-rtUpgrade kernel-debug-livepatch-develUpgrade dtb-sprdUpgrade kernel-defaultUpgrade reiserfs-kmp-64kbUpgrade kernel-source-vanillaUpgrade kernel-rt_debug-vdsoUpgrade gfs2-kmp-rtUpgrade kernel-docsUpgrade kernel-default-base-rebuildUpgrade kernel-kvmsmall-vdsoUpgrade kernel-rt-livepatch-develUpgrade kernel-syms-azureUpgrade cluster-md-kmp-64kbUpgrade dtb-nvidiaUpgrade kernel-debug-vdsoUpgrade dlm-kmp-64kbUpgrade kernel-azure-livepatch-develUpgrade kernel-rt_debugUpgrade kernel-azure-develUpgrade dtb-rockchipUpgrade kernel-rt-extraUpgrade kernel-kvmsmallUpgrade dlm-kmp-rtUpgrade kernel-rt-vdsoUpgrade kernel-source-rtUpgrade kernel-docs-htmlUpgrade kernel-obs-buildUpgrade kernel-default-extraUpgrade dlm-kmp-azureUpgrade dtb-broadcomUpgrade kselftests-kmp-defaultUpgrade dtb-marvellUpgrade kernel-rt_debug-develUpgrade dtb-qcomUpgrade kernel-obs-qaUpgrade kernel-default-optionalUpgrade kernel-default-baseUpgrade kernel-source-azureUpgrade gfs2-kmp-64kbUpgrade kernel-64kb-develUpgrade kernel-default-livepatch-develUpgrade ocfs2-kmp-azureUpgrade kernel-symsUpgrade dtb-socionextUpgrade dtb-xilinxUpgrade dtb-apmUpgrade kernel-kvmsmall-develUpgrade reiserfs-kmp-rtUpgrade reiserfs-kmp-defaultUpgrade dtb-renesasUpgrade kernel-64kb-optionalUpgrade kernel-64kb-extraUpgrade dtb-freescaleUpgrade kernel-azure-extraUpgrade ocfs2-kmp-rtUpgrade kernel-default-develUpgrade cluster-md-kmp-rtUpgrade reiserfs-kmp-azureUpgrade dtb-caviumUpgrade kselftests-kmp-rtUpgrade kernel-rt_debug-livepatch-develUpgrade kernel-64kb-livepatch-develUpgrade ocfs2-kmp-defaultUpgrade dtb-mediatekUpgrade dtb-lgUpgrade dtb-amdUpgrade gfs2-kmp-azureUpgrade dtb-allwinnerUpgrade kernel-debug-develUpgrade kernel-rt-develUpgrade kernel-kvmsmall-livepatch-develUpgrade kernel-64kbUpgrade dtb-hisiliconUpgrade dtb-appleUpgrade dlm-kmp-defaultUpgrade kernel-default-vdsoUpgrade kernel-debugUpgrade gfs2-kmp-defaultUpgrade dtb-amazonUpgrade kernel-develUpgrade kernel-devel-rtUpgrade dtb-armUpgrade kernel-zfcpdumpUpgrade kernel-azure-optionalUpgrade cluster-md-kmp-azureUpgrade dtb-altera | Jun 24, 2024 | May 21, 2024 |
| Ubuntu | — | Upgrade linux-nvidia-6.5 | Nov 19, 2024 | May 21, 2024 |
With curated Threat Intelligence, you can see which vulnerabilities truly put you at risk, prioritize what matters most, and act before attackers do.
Explore Intelligence Hub