In the Linux kernel, the following vulnerability has been resolved:
cxl/pmem: Fix cxlpmemregion and cxl_memdev leak
When a cxlnvdimm object goes through a ->remove() event (device physically removed, nvdimm-bridge disabled, or nvdimm device disabled), then any associated regions must also be disabled. As highlighted by the cxl-create-region.sh test [1], a single device may host multiple regions, but the driver was only tracking one region at a time. This leads to a situation where only the last enabled region per nvdimm device is cleaned up properly. Other regions are leaked, and this also causes cxlmemdev reference leaks.
Fix the tracking by allowing cxl_nvdimm objects to track multiple region associations.