Bug 1225476 (CVE-2023-52749)

Summary: VUL-0: CVE-2023-52749: kernel: spi: Fix null dereference on suspend
Product: [Novell Products] SUSE Security Incidents Reporter: SMASH SMASH <smash_bz>
Component: IncidentsAssignee: Security Team bot <security-team>
Status: IN_PROGRESS --- QA Contact: Security Team bot <security-team>
Severity: Normal    
Priority: P3 - Medium CC: gabriele.sonnu, ivan.ivanov
Version: unspecified   
Target Milestone: ---   
Hardware: Other   
OS: Other   
URL: https://smash.suse.de/issue/407096/
Whiteboard: CVSSv3.1:SUSE:CVE-2023-52749:5.5:(AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H)
Found By: Security Response Team Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---

Description SMASH SMASH 2024-05-28 11:53:57 UTC
In the Linux kernel, the following vulnerability has been resolved:

spi: Fix null dereference on suspend

A race condition exists where a synchronous (noqueue) transfer can be
active during a system suspend. This can cause a null pointer
dereference exception to occur when the system resumes.

Example order of events leading to the exception:
1. spi_sync() calls __spi_transfer_message_noqueue() which sets
   ctlr->cur_msg
2. Spi transfer begins via spi_transfer_one_message()
3. System is suspended interrupting the transfer context
4. System is resumed
6. spi_controller_resume() calls spi_start_queue() which resets cur_msg
   to NULL
7. Spi transfer context resumes and spi_finalize_current_message() is
   called which dereferences cur_msg (which is now NULL)

Wait for synchronous transfers to complete before suspending by
acquiring the bus mutex and setting/checking a suspend flag.

References:
http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2023-52749
https://git.kernel.org/pub/scm/linux/security/vulns.git/plain/cve/published/2023/CVE-2023-52749.mbox
https://git.kernel.org/stable/c/4ec4508db97502a12daee88c74782e8d35ced068
https://git.kernel.org/stable/c/96474ea47dc67b0704392d59192b233c8197db0e
https://git.kernel.org/stable/c/bef4a48f4ef798c4feddf045d49e53c8a97d5e37
https://www.cve.org/CVERecord?id=CVE-2023-52749
Comment 2 Ivan Ivanov 2024-06-06 08:57:29 UTC
Initial code which introduces this race condition is [1] and 
it is first found in Linux v6.0.

All of our products based on later Linux versions are contain
fix for the issue.

Not affected.

[1] ae7d2346dc89a "spi: Don't use the message queue if possible in spi_sync"