CVE-2023-52791

i2c: core: Run atomic i2c xfer when !preemptible

MEDIUM
5.5
CVSS Score
Published: May 21, 2024 at 03:31 PM UTC
Updated: June 17, 2026 at 06:43 AM UTC
1 product affected across 1 vendorLinux Kernel

Using Linux by Linux?

Get instant alerts when new vulnerabilities affect Linux - before attackers find them.

Real-time alertsTrack your software stackFree plan available
Severity
MEDIUM5.5
Exploit prediction
EPSS 0.2%
SSVC
No known exploit

Description

In the Linux kernel, the following vulnerability has been resolved: i2c: core: Run atomic i2c xfer when !preemptible Since bae1d3a05a8b, i2c transfers are non-atomic if preemption is disabled. However, non-atomic i2c transfers require preemption (e.g. in wait_for_completion() while waiting for the DMA). panic() calls preempt_disable_notrace() before calling emergency_restart(). Therefore, if an i2c device is used for the restart, the xfer should be atomic. This avoids warnings like: [ 12.667612] WARNING: CPU: 1 PID: 1 at kernel/rcu/tree_plugin.h:318 rcu_note_context_switch+0x33c/0x6b0 [ 12.676926] Voluntary context switch within RCU read-side critical section! ... [ 12.742376] schedule_timeout from wait_for_completion_timeout+0x90/0x114 [ 12.749179] wait_for_completion_timeout from tegra_i2c_wait_completion+0x40/0x70 ... [ 12.994527] atomic_notifier_call_chain from machine_restart+0x34/0x58 [ 13.001050] machine_restart from panic+0x2a8/0x32c Use !preemptible() instead, which is basically the same check as pre-v5.2.

Affected

Our own answer: ranges merged, affected separated from platform-only, with confidence and review flags.

5.11 ≤ v < 5.15.1405.16 ≤ v < 6.1.645.2 ≤ v < 5.10.2025.2 ≤ v < 5.15.1405.2 ≤ v < 5.4.2625.2 ≤ v < 6.1.645.2 ≤ v < 6.5.135.2 ≤ v < 6.6.35.2 ≤ v < 6.75.5 ≤ v < 5.10.2026.2 ≤ v < 6.5.136.6 ≤ v < 6.6.35.2bae1d3a05a8b99bd748168bbf8155a1d047c562e
Vendor states this is fixed in 185f3617adc8fe45e40489b458f03911f0dec46c (fixed)
Vendor states this is fixed in 25284c46b657f48c0f3880a2e0706c70d81182c0 (fixed)
Vendor states this is fixed in 25eb381a736e7ae39a4245ef5c96484eb1073809 (fixed)
Vendor states this is fixed in 3473cf43b9068b9dfef2f545f833f33c6a544b91 (fixed)
Vendor states this is fixed in 8c3fa52a46ff4d208cefb1a462ec94e0043a91e1 (fixed)
Vendor states this is fixed in aa49c90894d06e18a1ee7c095edbd2f37c232d02 (fixed)
Vendor states this is fixed in f6237afabc349c1c7909db00e15d2816519e0d2b (fixed)
Vendor states this is fixed in 5.10.202 (unaffected)
Vendor states this is fixed in 5.15.140 (unaffected)
Vendor states this is fixed in 5.2 (unaffected)
Vendor states this is fixed in 5.4.262 (unaffected)
Vendor states this is fixed in 6.1.64 (unaffected)
Vendor states this is fixed in 6.5.13 (unaffected)
Vendor states this is fixed in 6.6.3 (unaffected)
Vendor states this is fixed in 6.7 (unaffected)

References (7)

Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/185f3617adc8fe45e40489b458f03911f0dec46c
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/25284c46b657f48c0f3880a2e0706c70d81182c0
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/25eb381a736e7ae39a4245ef5c96484eb1073809
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/3473cf43b9068b9dfef2f545f833f33c6a544b91
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/8c3fa52a46ff4d208cefb1a462ec94e0043a91e1
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/aa49c90894d06e18a1ee7c095edbd2f37c232d02
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/f6237afabc349c1c7909db00e15d2816519e0d2b

SSVC — Action Prioritization

SSVCNo known exploitNot automatablePartial impact

SSVC signals action urgency (what to patch first), separate from CVSS which measures severity.

CVSS

Attack Vector
LOCAL
Complexity
LOW
Privileges
LOW
User Interaction
NONE
Scope
UNCHANGED
Confidentiality
NONE
Integrity
NONE
Availability
HIGH
Vector?

Quick Info

StatusANALYZED
CWE
NVD-CWE-noinfo

Get alerted

Stop reading CVE feeds looking for your own stack

Track the products you run and VulnTracker tells you when a new CVE affects them — with what is known about fixing it, and nothing about the rest.

Free plan, no card