漏洞信息
# cxl/pmem:修复 cxl_pmem_region 和 cxl_memdev 漏洞
## 概述
在Linux内核中,修复了一个漏洞,该漏洞与`cxl_pmem`和`cxl_memdev`的内存泄漏有关。当`cxl_nvdimm`对象通过`->remove()`事件被移除时,所有关联的区域也必须被禁用。然而,驱动程序只跟踪了一个区域,导致其他区域和`cxl_memdev`引用未被正确清理而泄漏。
## 细节
- 当一个`cxl_nvdimm`对象通过`->remove()`事件(设备被物理移除、NVDIMM-bridge被禁用或NVDIMM设备被禁用)被移除时,所有关联的区域也必须被禁用。
- 根据`cxl-create-region.sh`测试,一个设备可能托管多个区域,但驱动程序每次只跟踪一个区域。
- 这导致了只有最后一个启用的区域被正确清理,其他区域未被清理,从而导致`cxl_memdev`引用泄漏。
- 修复这个问题的方法是允许`cxl_nvdimm`对象跟踪多个区域关联。
## 影响
- 该漏洞导致了`cxl_pmem`区域和`cxl_memdev`对象的内存泄漏。
- 相关的测试脚本`cxl-create-region.sh`确认了该问题的存在。
提示
尽管我们采用了先进的大模型技术,但其输出仍可能包含不准确或过时的信息。
神龙会尽力确保数据准确,但也请结合实际情况进行甄别与判断。
神龙祝您一切顺利!
漏洞标题
cxl/pmem: Fix cxl_pmem_region and cxl_memdev leak
漏洞描述信息
In the Linux kernel, the following vulnerability has been resolved:
cxl/pmem: Fix cxl_pmem_region and cxl_memdev leak
When a cxl_nvdimm 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 cxl_memdev reference leaks.
Fix the tracking by allowing cxl_nvdimm objects to track multiple region
associations.
CVSS信息
N/A
漏洞类别
N/A
漏洞标题
Linux kernel 安全漏洞
漏洞描述信息
Linux kernel是美国Linux基金会的开源操作系统Linux所使用的内核。 Linux kernel存在安全漏洞,该漏洞源于未跟踪多个cxl_pmem_region关联,可能导致内存泄漏。
CVSS信息
N/A
漏洞类别
其他