GPU VulnDB

Database/Kernel, userspace & hypervisor

Linux kernel cxl/port: use-after-free when CXL region decoders are torn down out of order

CVSS 7.8CVE-2024-50226Kernel, userspace & hypervisorcurated

Impact

Tearing down a CXL region whose endpoint decoders share a switch decoder could hit the driver's in-order reset check, abort region cleanup, and leave the region referencing an already-deleted decoder object. The second teardown attempt then dereferences freed memory - the report shows a general protection fault on a poisoned pointer in to_cxl_port(). The CXL specification places no in-order requirement on switch decoder shutdown, so the fix removes decoders unconditionally. This matters where CXL memory expansion sits behind accelerators as capacity or tiering for large-model work: a region teardown that panics the host takes every job on the node with it, and CXL region lifecycle changes are exactly what happens during a memory reconfiguration or device replacement.

Who can reach it

Local and privileged - driving CXL region creation and decoder teardown requires root on the host (sysfs CXL region management, or module unbind). It is not reachable from a tenant workload, and nodes with no CXL devices are unaffected.

What to do

Take the stable kernel fix (four listed commits) via your distribution kernel and reboot each affected node; this is driver code, so a reboot is needed rather than a service restart. Until then, avoid CXL region teardown on production nodes - do memory reconfiguration with the node already out of service, which is the honest answer because that is where the crash is triggered anyway.

References

Related entries

All Kernel, userspace & hypervisor entries

This entry is curated: imported from vendor advisories with machine assistance, not yet individually verified. Confirm against your vendor's advisory before acting, and report anything wrong.