CVE-2023-52749 Information

Description

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
  5. spi_controller_resume() calls spi_start_queue() which resets cur_msg to NULL
  6. 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.

Reference

https://git.kernel.org/stable/c/4ec4508db97502a12daee88c74782e8d35ced068 https://git.kernel.org/stable/c/96474ea47dc67b0704392d59192b233c8197db0e https://git.kernel.org/stable/c/bef4a48f4ef798c4feddf045d49e53c8a97d5e37

Share on: