In the Linux kernel, the following vulnerability has been resolved:
cxl/port: Fix use after free of parent_port in cxl_detach_ep()
cxl_detach_ep() is called during bottom-up removal when all CXL memory devices beneath a switch port have been removed. For each port in the hierarchy it locks both the port and its parent, removes the endpoint, and if the port is now empty, marks it dead and unregisters the port by calling delete_switch_port(). There are two places during this work where the parent_port may be used after freeing:
First, a concurrent detach may have already processed a port by the time a second worker finds it via bus_find_device(). Without pinning parent_port, it may already be freed when we discover port->dead and attempt to unlock the parent_port. In a production kernel that's a silent memory corruption, with lock debug, it looks like this:
[]DEBUG_LOCKS_WARN_ON(__owner_task(owner) != get_current()) []WARNING: kernel/locking/mutex.c:949 at __mutex_unlock_slowpath+0x1ee/0x310 []Call Trace: []mutex_unlock+0xd/0x20 []cxl_detach_ep+0x180/0x400 [cxl_core] []devm_action_release+0x10/0x20 []devres_release_all+0xa8/0xe0 []device_unbind_cleanup+0xd/0xa0 []really_probe+0x1a6/0x3e0
Second, delete_switch_port() releases three devm actions registered against parent_port. The last of those is unregister_port() and it calls device_unregister() on the child port, which can cascade. If parent_port is now also empty the device core may unregister and free it too. So by the time delete_switch_port() returns, parent_port may be free, and the subsequent device_unlock(&parent_port->dev) operates on freed memory. The kernel log looks same as above, with a different offset in cxl_detach_ep().
Both of these issues stem from the absence of a lifetime guarantee between a child port and its parent port.
Establish a lifetime rule for ports: child ports hold a reference to their parent device until release. Take the reference when the port is allocated and drop it when released. This ensures the parent is valid for the full lifetime of the child and eliminates the use after free window in cxl_detach_ep().
This is easily reproduced with a reload of cxl_acpi in QEMU with CXL devices present.
CVSS Details
- CVSS 3.1 Base Score: 7.8
- CVSS 3.1 Vector: (CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H)
Covered by Rapid7
| Product | Vendor Advisory | Solution File | Added | Published |
|---|---|---|---|---|
| Debian | — | Upgrade linux | Jul 23, 2026 | Jul 23, 2026 |
| Redhat_linux | — | No solution existsUpgrade kernelUpgrade kernel-rt | Jul 17, 2026 | Apr 22, 2026 |
| Rocky_linux | — | Upgrade kernel-zfcpdump-coreUpgrade kernel-rt-coreUpgrade python3-perf-debuginfoUpgrade kernel-zfcpdump-devel-matchedUpgrade python3-perfUpgrade kernel-modules-extra-matchedUpgrade kernel-debug-modulesUpgrade kernelUpgrade kernel-debuginfo-common-x86_64Upgrade kernel-rt-debugUpgrade kernel-tools-libsUpgrade kernel-tools-libs-develUpgrade kernel-zfcpdump-debuginfoUpgrade kernel-zfcpdump-modules-coreUpgrade kernel-rt-debug-coreUpgrade kernel-rt-debug-debuginfoUpgrade kernel-rt-develUpgrade kernel-debug-modules-coreUpgrade kernel-rt-modules-extraUpgrade libperf-debuginfoUpgrade kernel-rt-debuginfoUpgrade kernel-rt-modulesUpgrade kernel-zfcpdump-modules-extraUpgrade kernel-devel-matchedUpgrade kernel-zfcpdumpUpgrade kernel-debuginfo-common-s390xUpgrade kernel-debug-modules-extraUpgrade kernel-debug-debuginfoUpgrade kernel-tools-debuginfoUpgrade kernel-rt-modules-coreUpgrade kernel-rtUpgrade kernel-uki-virt-addonsUpgrade kernel-rt-debug-modules-coreUpgrade rtlaUpgrade kernel-debug-uki-virtUpgrade kernel-debug-develUpgrade kernel-zfcpdump-develUpgrade kernel-modules-extraUpgrade perf-debuginfoUpgrade libperfUpgrade kernel-coreUpgrade kernel-debug-devel-matchedUpgrade kernel-uki-virtUpgrade rvUpgrade kernel-debugUpgrade kernel-toolsUpgrade kernel-rt-debug-modules-extraUpgrade kernel-debuginfoUpgrade kernel-modules-coreUpgrade perfUpgrade kernel-zfcpdump-modulesUpgrade kernel-rt-debug-modulesUpgrade kernel-debug-coreUpgrade kernel-rt-debug-develUpgrade kernel-modulesUpgrade kernel-devel | Jul 27, 2026 | Jul 23, 2026 |
| Ubuntu | — | Upgrade linux-image-azure-fdeUpgrade linux-image-aws-fips-6.8Upgrade linux-image-aws-64k-lts-24.04Upgrade linux-image-nvidia-hwe-22.04Upgrade linux-image-gke-6.8Upgrade linux-image-6.8.0-136-fipsUpgrade linux-image-aws-64kUpgrade linux-image-genericUpgrade linux-image-awsUpgrade linux-image-generic-64k-hwe-22.04Upgrade linux-image-gkeop-6.8Upgrade linux-image-6.8.0-1061-aws-fipsUpgrade linux-image-6.8.0-2050-raspi-realtimeUpgrade linux-image-lowlatencyUpgrade linux-image-nvidia-lowlatency-6.8Upgrade linux-image-6.8.0-1064-gcp-fipsUpgrade linux-image-ibm-6.8Upgrade linux-image-nvidiaUpgrade linux-image-6.8.0-136-lowlatencyUpgrade linux-image-lowlatency-64kUpgrade linux-image-gcp-64k-lts-24.04Upgrade linux-image-oem-20.04bUpgrade linux-image-azure-fips-6.8Upgrade linux-image-azure-fipsUpgrade linux-image-raspi-realtimeUpgrade linux-image-lowlatency-64k-6.8Upgrade linux-image-6.8.0-1030-nvidia-tegraUpgrade linux-image-fips-6.8Upgrade linux-image-6.8.1-1056-realtimeUpgrade linux-image-nvidia-64k-hwe-22.04Upgrade linux-image-6.8.0-136-genericUpgrade linux-image-generic-6.8Upgrade linux-image-intel-iot-realtimeUpgrade linux-image-oem-22.04Upgrade linux-image-oem-22.04bUpgrade linux-image-6.8.0-1059-nvidia-lowlatency-64kUpgrade linux-image-gkeUpgrade linux-image-nvidia-lowlatency-64kUpgrade linux-image-aws-64k-6.8Upgrade linux-image-generic-hwe-22.04Upgrade linux-image-ibmUpgrade linux-image-ibm-lts-24.04Upgrade linux-image-6.8.0-1058-oracle-64kUpgrade linux-image-6.8.0-1059-nvidia-64kUpgrade linux-image-6.8.0-1059-nvidia-lowlatencyUpgrade linux-image-azure-lts-24.04Upgrade linux-image-6.8.0-1033-xilinxUpgrade linux-image-virtualUpgrade linux-image-6.8.0-1061-awsUpgrade linux-image-realtime-hwe-22.04Upgrade linux-image-oem-20.04dUpgrade linux-image-nvidia-64k-6.8Upgrade linux-image-oracle-64kUpgrade linux-image-generic-64k-6.8Upgrade linux-image-kvmUpgrade linux-image-xilinxUpgrade linux-image-6.8.0-1061-raspiUpgrade linux-image-gcpUpgrade linux-image-generic-lpaeUpgrade linux-image-ibm-classicUpgrade linux-image-lowlatency-64k-hwe-22.04Upgrade linux-image-6.8.0-1059-gkeUpgrade linux-image-6.8.0-1064-gcp-64kUpgrade linux-image-oracle-64k-6.8Upgrade linux-image-intel-iotgUpgrade linux-image-azure-6.8Upgrade linux-image-oem-22.04aUpgrade linux-image-fipsUpgrade linux-image-nvidia-64kUpgrade linux-image-raspi-realtime-6.8Upgrade linux-image-gcp-6.8Upgrade linux-image-oracleUpgrade linux-image-lowlatency-hwe-22.04Upgrade linux-image-oem-20.04Upgrade linux-image-6.8.0-1046-gkeopUpgrade linux-image-oracle-lts-24.04Upgrade linux-image-azure-fde-6.8Upgrade linux-image-gke-64k-6.8Upgrade linux-image-6.8.0-1059-nvidiaUpgrade linux-image-xilinx-6.8Upgrade linux-image-oracle-64k-lts-24.04Upgrade linux-image-oem-22.04dUpgrade linux-image-nvidia-tegra-rtUpgrade linux-image-nvidia-6.8Upgrade linux-image-6.8.0-1030-nvidia-tegra-rtUpgrade linux-image-6.8.0-136-lowlatency-64kUpgrade linux-image-nvidia-tegraUpgrade linux-image-aws-fipsUpgrade linux-image-realtime-6.8.1Upgrade linux-image-6.8.0-1064-gcpUpgrade linux-image-xilinx-zynqmpUpgrade linux-image-oracle-6.8Upgrade linux-image-gcp-64k-6.8Upgrade linux-image-6.8.0-136-generic-64kUpgrade linux-image-gcp-64kUpgrade linux-image-aws-6.8Upgrade linux-image-realtimeUpgrade linux-image-raspiUpgrade linux-image-laptop-23.10Upgrade linux-image-generic-64kUpgrade linux-image-aws-lts-24.04Upgrade linux-image-6.8.0-1062-azure-fdeUpgrade linux-image-nvidia-tegra-6.8Upgrade linux-image-nvidia-lowlatencyUpgrade linux-image-lowlatency-6.8Upgrade linux-image-6.8.0-1063-azureUpgrade linux-image-6.8.0-1061-ibmUpgrade linux-image-nvidia-tegra-rt-6.8Upgrade linux-image-6.8.0-1058-oracleUpgrade linux-image-gcp-fipsUpgrade linux-image-virtual-hwe-22.04Upgrade linux-image-gcp-lts-24.04Upgrade linux-image-azure-fde-lts-24.04Upgrade linux-image-virtual-6.8Upgrade linux-image-azureUpgrade linux-image-6.8.0-1061-aws-64kUpgrade linux-image-gkeopUpgrade linux-image-gke-64kUpgrade linux-image-6.8.0-1063-azure-fipsUpgrade linux-image-oem-22.04cUpgrade linux-image-gcp-fips-6.8Upgrade linux-image-6.8.0-1059-gke-64kUpgrade linux-image-raspi-6.8Upgrade linux-image-oem-20.04cUpgrade linux-image-nvidia-lowlatency-64k-6.8 | Jul 21, 2026 | Jul 20, 2026 |
| Vmware Photon_os | — | Use 'tdnf update' to upgrade all packages to the latest version. | Jul 10, 2026 | Apr 22, 2026 |
Prioritise with Active Threat Intelligence
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