CVE-2023-52786

ext4: fix racy may inline data check in dio write

MEDIUM
4.7
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
MEDIUM4.7
Exploit prediction
EPSS 0.2%
SSVC
No known exploit

Description

In the Linux kernel, the following vulnerability has been resolved: ext4: fix racy may inline data check in dio write syzbot reports that the following warning from ext4_iomap_begin() triggers as of the commit referenced below: if (WARN_ON_ONCE(ext4_has_inline_data(inode))) return -ERANGE; This occurs during a dio write, which is never expected to encounter an inode with inline data. To enforce this behavior, ext4_dio_write_iter() checks the current inline state of the inode and clears the MAY_INLINE_DATA state flag to either fall back to buffered writes, or enforce that any other writers in progress on the inode are not allowed to create inline data. The problem is that the check for existing inline data and the state flag can span a lock cycle. For example, if the ilock is originally locked shared and subsequently upgraded to exclusive, another writer may have reacquired the lock and created inline data before the dio write task acquires the lock and proceeds. The commit referenced below loosens the lock requirements to allow some forms of unaligned dio writes to occur under shared lock, but AFAICT the inline data check was technically already racy for any dio write that would have involved a lock cycle. Regardless, lift clearing of the state bit to the same lock critical section that checks for preexisting inline data on the inode to close the race.

Affected

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

6.5 ≤ v < 6.5.136.5 ≤ v < 6.6.36.5 ≤ v < 6.76.6 ≤ v < 6.6.3310ee0902b8d9d0a13a5a13e94688a5863fa29c26.5
Vendor states this is fixed in 7343c23ebcadbedc23a7063d1e24d976eccb0d0d (fixed)
Vendor states this is fixed in ce56d21355cd6f6937aca32f1f44ca749d1e4808 (fixed)
Vendor states this is fixed in e3b83d87c93eb6fc96a80b5e8527f7dc9f5a11bc (fixed)
Vendor states this is fixed in 6.5 (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 (3)

Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/7343c23ebcadbedc23a7063d1e24d976eccb0d0d
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/ce56d21355cd6f6937aca32f1f44ca749d1e4808
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/e3b83d87c93eb6fc96a80b5e8527f7dc9f5a11bc

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
HIGH
Privileges
LOW
User Interaction
NONE
Scope
UNCHANGED
Confidentiality
NONE
Integrity
NONE
Availability
HIGH
Vector?

Quick Info

StatusANALYZED
CWE
CWE-667

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