Bugzilla – Bug 1225519
VUL-0: CVE-2022-48707: kernel: cxl/region: fix null pointer dereference for resetting decoder
Last modified: 2024-06-06 15:16:37 UTC
In the Linux kernel, the following vulnerability has been resolved: cxl/region: Fix null pointer dereference for resetting decoder Not all decoders have a reset callback. The CXL specification allows a host bridge with a single root port to have no explicit HDM decoders. Currently the region driver assumes there are none. As such the CXL core creates a special pass through decoder instance without a commit/reset callback. Prior to this patch, the ->reset() callback was called unconditionally when calling cxl_region_decode_reset. Thus a configuration with 1 Host Bridge, 1 Root Port, and one directly attached CXL type 3 device or multiple CXL type 3 devices attached to downstream ports of a switch can cause a null pointer dereference. Before the fix, a kernel crash was observed when we destroy the region, and a pass through decoder is reset. The issue can be reproduced as below, 1) create a region with a CXL setup which includes a HB with a single root port under which a memdev is attached directly. 2) destroy the region with cxl destroy-region regionX -f. References: http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2022-48707 https://git.kernel.org/pub/scm/linux/security/vulns.git/plain/cve/published/2022/CVE-2022-48707.mbox https://git.kernel.org/stable/c/a04c7d062b537ff787d00da95bdfe343260d4beb https://git.kernel.org/stable/c/4fa4302d6dc7de7e8e74dc7405611a2efb4bf54b https://www.cve.org/CVERecord?id=CVE-2022-48707 https://bugzilla.redhat.com/show_bug.cgi?id=2282601
The fix is in all relevant branches. Switching back to the security team.