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-debug-devel-matchedUpgrade kernel-rt-debug-develUpgrade kernel-64k-devel-matchedUpgrade kernel-64k-coreUpgrade kernel-abi-stablelistsUpgrade kernel-modules-coreUpgrade kernel-zfcpdump-develUpgrade kernel-64k-debugUpgrade kernel-rt-debug-modules-coreUpgrade kernel-devel-matchedUpgrade perfUpgrade kernel-uki-virtUpgrade kernel-rt-debug-modules-extraUpgrade kernel-debug-develUpgrade kernel-modulesUpgrade kernel-zfcpdump-modules-coreUpgrade rtlaUpgrade kernel-64k-debug-modules-extraUpgrade kernel-rt-modules-coreUpgrade kernel-zfcpdump-modulesUpgrade kernel-docUpgrade kernel-headersUpgrade kernel-tools-libs-develUpgrade libperfUpgrade kernel-debug-modules-extraUpgrade kernel-zfcpdump-coreUpgrade kernel-zfcpdump-modules-extraUpgrade kernel-debug-modules-coreUpgrade kernel-rt-debugUpgrade kernel-debugUpgrade kernel-debug-coreUpgrade kernel-rt-develUpgrade rvUpgrade kernel-rt-debug-coreUpgrade kernel-cross-headersUpgrade kernel-64k-debug-modulesUpgrade kernel-debug-modulesUpgrade kernel-rt-modulesUpgrade kernel-64k-modules-coreUpgrade kernel-64k-develUpgrade kernel-64k-debug-modules-coreUpgrade kernel-modules-extraUpgrade kernel-64kUpgrade kernelUpgrade kernel-zfcpdump-devel-matchedUpgrade kernel-64k-modulesUpgrade kernel-toolsUpgrade kernel-debug-uki-virtUpgrade kernel-zfcpdumpUpgrade kernel-64k-debug-develUpgrade kernel-coreUpgrade kernel-rt-modules-extraUpgrade kernel-develUpgrade kernel-tools-libsUpgrade python3-perfUpgrade kernel-rt-coreUpgrade kernel-rt-debug-modulesUpgrade bpftoolUpgrade kernel-64k-debug-coreUpgrade kernel-64k-modules-extraUpgrade kernel-64k-debug-devel-matchedUpgrade kernel-rt | 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 | — | Upgrade kernelUpgrade kernel-rtNo solution exists | Sep 13, 2024 | May 21, 2024 |
| Suse | — | Upgrade kernel-syms-azureUpgrade kernel-azureUpgrade dtb-rockchipUpgrade kernel-rt_debugUpgrade cluster-md-kmp-64kbUpgrade dtb-nvidiaUpgrade dtb-qcomUpgrade kernel-debug-livepatch-develUpgrade kernel-rtUpgrade kernel-azure-vdsoUpgrade kernel-syms-rtUpgrade dlm-kmp-azureUpgrade kernel-devel-azureUpgrade dlm-kmp-64kbUpgrade kernel-kvmsmall-vdsoUpgrade kernel-rt-livepatch-develUpgrade kernel-default-livepatchUpgrade kernel-source-vanillaUpgrade kselftests-kmp-defaultUpgrade dtb-exynosUpgrade ocfs2-kmp-64kbUpgrade reiserfs-kmp-64kbUpgrade kernel-default-base-rebuildUpgrade kernel-azure-livepatch-develUpgrade kernel-obs-buildUpgrade kernel-docs-htmlUpgrade kernel-source-rtUpgrade kernel-rt-vdsoUpgrade dtb-broadcomUpgrade dlm-kmp-rtUpgrade kernel-rt-extraUpgrade kernel-obs-qaUpgrade gfs2-kmp-rtUpgrade kselftests-kmp-64kbUpgrade kernel-docsUpgrade kernel-rt-optionalUpgrade kernel-rt_debug-develUpgrade kernel-azure-develUpgrade kernel-rt_debug-vdsoUpgrade kernel-default-extraUpgrade kernel-kvmsmallUpgrade kernel-debug-vdsoUpgrade kernel-defaultUpgrade cluster-md-kmp-defaultUpgrade kernel-sourceUpgrade kselftests-kmp-azureUpgrade dtb-marvellUpgrade dtb-sprdUpgrade dtb-amlogicUpgrade kernel-macrosUpgrade ocfs2-kmp-defaultUpgrade dtb-appleUpgrade kernel-default-vdsoUpgrade gfs2-kmp-defaultUpgrade dtb-allwinnerUpgrade gfs2-kmp-azureUpgrade dtb-armUpgrade kernel-zfcpdumpUpgrade kernel-default-optionalUpgrade kernel-debug-develUpgrade kernel-source-azureUpgrade dtb-caviumUpgrade dtb-socionextUpgrade ocfs2-kmp-azureUpgrade kernel-symsUpgrade kernel-kvmsmall-develUpgrade kernel-default-develUpgrade dtb-apmUpgrade cluster-md-kmp-rtUpgrade reiserfs-kmp-azureUpgrade dtb-amazonUpgrade kernel-64kb-optionalUpgrade reiserfs-kmp-rtUpgrade kernel-azure-extraUpgrade dtb-freescaleUpgrade reiserfs-kmp-defaultUpgrade kselftests-kmp-rtUpgrade kernel-rt_debug-livepatch-develUpgrade kernel-64kb-livepatch-develUpgrade ocfs2-kmp-rtUpgrade kernel-develUpgrade kernel-default-livepatch-develUpgrade kernel-64kb-develUpgrade gfs2-kmp-64kbUpgrade dtb-xilinxUpgrade kernel-rt-develUpgrade kernel-devel-rtUpgrade kernel-64kbUpgrade dtb-hisiliconUpgrade dtb-alteraUpgrade dlm-kmp-defaultUpgrade dtb-amdUpgrade dtb-lgUpgrade kernel-debugUpgrade kernel-azure-optionalUpgrade cluster-md-kmp-azureUpgrade kernel-default-baseUpgrade kernel-64kb-extraUpgrade dtb-renesasUpgrade dtb-mediatekUpgrade kernel-kvmsmall-livepatch-devel | 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