CVE-2023-52608
Severity CVSS v4.0:
Pending analysis
Type:
CWE-362
Concurrent Execution using Shared Resource with Improper Synchronization ('Race Condition')
Publication date:
13/03/2024
Last modified:
25/02/2025
Description
In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
firmware: arm_scmi: Check mailbox/SMT channel for consistency<br />
<br />
On reception of a completion interrupt the shared memory area is accessed<br />
to retrieve the message header at first and then, if the message sequence<br />
number identifies a transaction which is still pending, the related<br />
payload is fetched too.<br />
<br />
When an SCMI command times out the channel ownership remains with the<br />
platform until eventually a late reply is received and, as a consequence,<br />
any further transmission attempt remains pending, waiting for the channel<br />
to be relinquished by the platform.<br />
<br />
Once that late reply is received the channel ownership is given back<br />
to the agent and any pending request is then allowed to proceed and<br />
overwrite the SMT area of the just delivered late reply; then the wait<br />
for the reply to the new request starts.<br />
<br />
It has been observed that the spurious IRQ related to the late reply can<br />
be wrongly associated with the freshly enqueued request: when that happens<br />
the SCMI stack in-flight lookup procedure is fooled by the fact that the<br />
message header now present in the SMT area is related to the new pending<br />
transaction, even though the real reply has still to arrive.<br />
<br />
This race-condition on the A2P channel can be detected by looking at the<br />
channel status bits: a genuine reply from the platform will have set the<br />
channel free bit before triggering the completion IRQ.<br />
<br />
Add a consistency check to validate such condition in the A2P ISR.
Impact
Base Score 3.x
4.70
Severity 3.x
MEDIUM
Vulnerable products and versions
CPE | From | Up to |
---|---|---|
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.7 (including) | 5.15.149 (excluding) |
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.16 (including) | 6.1.76 (excluding) |
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.2 (including) | 6.6.15 (excluding) |
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.7 (including) | 6.7.3 (excluding) |
cpe:2.3:o:linux:linux_kernel:6.8:rc1:*:*:*:*:*:* |
To consult the complete list of CPE names with products and versions, see this page
References to Advisories, Solutions, and Tools
- https://git.kernel.org/stable/c/12dc4217f16551d6dee9cbefc23fdb5659558cda
- https://git.kernel.org/stable/c/437a310b22244d4e0b78665c3042e5d1c0f45306
- https://git.kernel.org/stable/c/614cc65032dcb0b64d23f5c5e338a8a04b12be5d
- https://git.kernel.org/stable/c/7f95f6997f4fdd17abec3200cae45420a5489350
- https://git.kernel.org/stable/c/9b5e1b93c83ee5fc9f5d7bd2d45b421bd87774a2
- https://git.kernel.org/stable/c/12dc4217f16551d6dee9cbefc23fdb5659558cda
- https://git.kernel.org/stable/c/437a310b22244d4e0b78665c3042e5d1c0f45306
- https://git.kernel.org/stable/c/614cc65032dcb0b64d23f5c5e338a8a04b12be5d
- https://git.kernel.org/stable/c/7f95f6997f4fdd17abec3200cae45420a5489350
- https://git.kernel.org/stable/c/9b5e1b93c83ee5fc9f5d7bd2d45b421bd87774a2