Get a Demo

Let's Patch It!

Book a short call with one our specialists, we'll walk you through how Endor Patches work, and ask you a few questions about your environment (like your primary programming languages and repository management). We'll also send you an email right after you fill out the form, feel free to reply with any questions you have in advance!

CVE

CVE-2026-89786

ext4: fix out-of-bounds read in ext4_read_inline_dir()
Back to all
CVE

CVE-2026-89786

ext4: fix out-of-bounds read in ext4_read_inline_dir()

In the Linux kernel, the following vulnerability has been resolved:

ext4: fix out-of-bounds read in ext4readinline_dir()

ext4readinline_dir() can read a dirent header past the end of its inline

buffer, triggering a slab-out-of-bounds read during getdents64():

  BUG: KASAN: slab-out-of-bounds in _ext4checkdirentry

  Read of size 2 at addr ffff88800f3dd23c by task exploit/148

   ...

   _ext4checkdirentry

   ext4readinline_dir

   iterate_dir

The dirent payload lives in a buffer of exactly inline_size bytes:

dirbuf = kmalloc(inlinesize, GFP_NOFS);

but iteration runs in a position space extra_offset bytes larger

(extrasize = extraoffset + inline_size) so the synthetic "." and ".."

land at their block-dir offsets. A dirent is formed at "dir_buf + pos -

extraoffset", yet the ext4checkdirentry() length argument uses the

larger extra_size. A position whose dirent header would extend past

extrasize is therefore accepted, and the rescan loop's reclen probe and

ext4checkdirentry() dereference de->reclen before the entry is rejected.

Reject a position whose minimum-size dirent header would not fit within

extra_size before forming de, in both the rescan and main loops, and pass

inlinesize rather than extrasize to ext4checkdir_entry() so the length

check matches the physical buffer.

Package Versions Affected

Package Version
patch Availability
No items found.

Automatically patch vulnerabilities without upgrading

Fix Without Upgrading
Detect compatible fix
Apply safe remediation
Fix with a single pull request

CVSS Version

Severity
Base Score
CVSS Version
Score Vector
C
H
U
9.1
-
3.1
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H
C
H
U
0
-
3.1
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H
C
H
U
-

Related Resources

No items found.

References

https://git.kernel.org/stable/c/1a1dea633b724a1c042dbcdb1fed27f410916688, https://git.kernel.org/stable/c/36bf17bb90cdf7a623499b624b05acde4d2feef5, https://git.kernel.org/stable/c/5fd20d4e50dd6e460b3ea8e4396f8553d4526f8f, https://git.kernel.org/stable/c/6702c7da86d8cdb88d0fc57166286e115ffeb8c0, https://git.kernel.org/stable/c/9333cc809f0a89e001b814155a6cb8903a6274df, https://git.kernel.org/stable/c/b060861f662d4826dc700a1c3584243bb3474cfe, https://git.kernel.org/stable/c/d1e7c186555ad65554fd2f2b02f5a539aa35ae48, https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/89xxx/CVE-2026-89786.json, https://nvd.nist.gov/vuln/detail/CVE-2026-89786, https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git

Severity

9.1

CVSS Score
0
10

Basic Information

Base CVSS
9.1
EPSS Probability
0.00718%
EPSS Percentile
0.52532%
Introduced Version
c4d8b0235aa98f8c26bf94d308be3fdd24154572,3.10.0,5.16.0,6.2.0,6.7.0,6.13.0,6.19.0,0
Fix Available
9333cc809f0a89e001b814155a6cb8903a6274df,5.15.221,6.1.188,6.6.157,6.12.110,6.18.52,7.2.6,6.12.111-1~deb12u1,6.12.111-1,0:6.12.0-207.111.5.1.el9uek,0:6.12.0-207.111.5.1.el10uek

Fix Critical Vulnerabilities Instantly

Secure your app without upgrading.
Fix Without Upgrading