Bug 1225519 (CVE-2022-48707) - VUL-0: CVE-2022-48707: kernel: cxl/region: fix null pointer dereference for resetting decoder
Summary: VUL-0: CVE-2022-48707: kernel: cxl/region: fix null pointer dereference for r...
Status: RESOLVED FIXED
Alias: CVE-2022-48707
Product: SUSE Security Incidents
Classification: Novell Products
Component: Incidents (show other bugs)
Version: unspecified
Hardware: Other Other
: P3 - Medium : Normal
Target Milestone: ---
Assignee: Security Team bot
QA Contact: Security Team bot
URL: https://smash.suse.de/issue/407007/
Whiteboard: CVSSv3.1:SUSE:CVE-2022-48707:5.5:(AV:...
Keywords:
Depends on:
Blocks:
 
Reported: 2024-05-28 15:24 UTC by SMASH SMASH
Modified: 2024-06-06 15:16 UTC (History)
2 users (show)

See Also:
Found By: Security Response Team
Services Priority:
Business Priority:
Blocker: ---
Marketing QA Status: ---
IT Deployment: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description SMASH SMASH 2024-05-28 15:24:32 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
Comment 1 Miroslav Franc 2024-06-05 08:07:18 UTC
The fix is in all relevant branches. Switching back to the security team.