CVE-2024-35824

misc: lis3lv02d_i2c: Fix regulators getting en-/dis-abled twice on suspend/resume

MEDIUM
5.5
CVSS Score
Published: May 17, 2024 at 01:27 PM UTC
Updated: June 17, 2026 at 07:35 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: misc: lis3lv02d_i2c: Fix regulators getting en-/dis-abled twice on suspend/resume When not configured for wakeup lis3lv02d_i2c_suspend() will call lis3lv02d_poweroff() even if the device has already been turned off by the runtime-suspend handler and if configured for wakeup and the device is runtime-suspended at this point then it is not turned back on to serve as a wakeup source. Before commit b1b9f7a49440 ("misc: lis3lv02d_i2c: Add missing setting of the reg_ctrl callback"), lis3lv02d_poweroff() failed to disable the regulators which as a side effect made calling poweroff() twice ok. Now that poweroff() correctly disables the regulators, doing this twice triggers a WARN() in the regulator core: unbalanced disables for regulator-dummy WARNING: CPU: 1 PID: 92 at drivers/regulator/core.c:2999 _regulator_disable ... Fix lis3lv02d_i2c_suspend() to not call poweroff() a second time if already runtime-suspended and add a poweron() call when necessary to make wakeup work. lis3lv02d_i2c_resume() has similar issues, with an added weirness that it always powers on the device if it is runtime suspended, after which the first runtime-resume will call poweron() again, causing the enabled count for the regulator to increase by 1 every suspend/resume. These unbalanced regulator_enable() calls cause the regulator to never be turned off and trigger the following WARN() on driver unbind: WARNING: CPU: 1 PID: 1724 at drivers/regulator/core.c:2396 _regulator_put Fix this by making lis3lv02d_i2c_resume() mirror the new suspend().

Affected

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

6.1.77 ≤ v < 6.1.846.6.16 ≤ v < 6.6.246.7.4 ≤ v < 6.7.121229ce1c4acd36f5af97c996420defc43daca6352c1164ad927e62f122b151493bb183bc11dab8f86.1.776.6.166.7.46.8 rc16.8 rc26.8 rc36.8 rc46.8 rc56.8 rc66.8 rc7755182e1e8667272a082506a2a20b4cdd78ab4c2b1b9f7a494400c0c39f8cd83de3aaa6111c55087
Vendor states this is fixed in 4154e767354140db7804207117e7238fb337b0e7 (fixed)
Vendor states this is fixed in 997ca415384612c8df76d99d9a768e0b3f42b325 (fixed)
Vendor states this is fixed in ac3e0384073b2408d6cb0d972fee9fcc3776053d (fixed)
Vendor states this is fixed in f6df761182fc953907b18aba5049fc2a044ecb45 (fixed)
Affected range stops below 6.1.84, so it looks safe — our inference, not a vendor statement
Affected range stops below 6.6.24, so it looks safe — our inference, not a vendor statement
Affected range stops below 6.7.12, so it looks safe — our inference, not a vendor statement

References (4)

Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/4154e767354140db7804207117e7238fb337b0e7
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/997ca415384612c8df76d99d9a768e0b3f42b325
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/ac3e0384073b2408d6cb0d972fee9fcc3776053d
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/f6df761182fc953907b18aba5049fc2a044ecb45

SSVC — Action Prioritization

SSVCNo known exploitNot automatablePartial impact

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

CVSS

5.5MEDIUMCISA-ADP
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