Description
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.
Metrics
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:HWeakness enumeration
Affected software
| Vendor | Product | Versions |
|---|---|---|
| Linux | Linux | >= 176baefb2eb5d7a3ddebe3ff803db1fce44574b5, < a04c7d062b537ff787d00da95bdfe343260d4beb; >= 176baefb2eb5d7a3ddebe3ff803db1fce44574b5, < 4fa4302d6dc7de7e8e74dc7405611a2efb4bf54b |
| Linux | Linux | 6.0 |
References
- https://git.kernel.org/stable/c/4fa4302d6dc7de7e8e74dc7405611a2efb4bf54bPatch
- https://git.kernel.org/stable/c/a04c7d062b537ff787d00da95bdfe343260d4bebPatch
- https://git.kernel.org/stable/c/4fa4302d6dc7de7e8e74dc7405611a2efb4bf54bPatch
- https://git.kernel.org/stable/c/a04c7d062b537ff787d00da95bdfe343260d4bebPatch
Timeline
- Published
- May 21, 2024
- Last modified
- Jun 17, 2026
- NVD status
- Analyzed