CVE-2023-52749

Updated on 21 May 2024

Severity

4.7 Medium severity

Details

CVSS score
4.7
CVSS vector
CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:H

Overview

About vulnerability

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.

Details

Affected packages:
kernel @ 2.6.32 (+9 more)

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.

Fixes