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-89492

ocfs2: validate directory-index entry counts when reading metadata
Back to all
CVE

CVE-2026-89492

ocfs2: validate directory-index entry counts when reading metadata

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

ocfs2: validate directory-index entry counts when reading metadata

ocfs2validatedxleaf() and ocfs2validatedxroot() check the ECC and

signature of an indexed-directory block before it reaches higher-level

callers, but neither validator bounds the ocfs2dxentry_list counts

against the capacity of the block that holds them.

ocfs2dxdir_search() then walks

for (i = 0; i < le16tocpu(entrylist->denum_used); i++)

dxentry = &entrylist->de_entries[i];

over denumused entries with no bounds check.  entry_list is either

dxleaf->dllist (from ocfs2readdx_leaf) or, for an inline root,

dxroot->drentries.  A crafted on-disk image can set denumused (and

decount, which is the countedbyle() bound of deentries) to 0xffff

and make the walk read far past the end of the 4KB metadata block, giving

a slab out-of-bounds read reachable from any path lookup, stat() or open()

on an indexed directory once the image is mounted.

Commit 775c17386a6f ("ocfs2: validate dx_root extent list fields during

block read") already bounds drlist for the non-inline dxroot, but left

the inline drentries path and the dxleaf dl_list unchecked.  Add the

same read-time validation for both entry lists: de_count must equal the

capacity of the block (ocfs2dxentriesperleaf()/per_root()) and

denumused must not exceed de_count, rejecting corrupted metadata with

-EFSCORRUPTED before ocfs2dxdir_search() can walk an out-of-range entry

array.

de_count is always written as exactly the block capacity when a leaf or

inline root is formatted, so the equality check does not reject any valid

image.

Found by 0sec automated security-research tooling (https://0sec.ai).

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.8
-
3.1
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
C
H
U
0
-
3.1
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
C
H
U
-

Related Resources

No items found.

References

https://git.kernel.org/stable/c/5e661f55ca8568471fce558effe81cca112f5cb2, https://git.kernel.org/stable/c/b8a5c0c32df2c5b685ceef76ac77e37c7e1dc3ed, https://git.kernel.org/stable/c/bc70726ddad53c7e9a9a85915bf2415b0d4f42f9, https://git.kernel.org/stable/c/fcfcba8fe17dbf2c8805690b8cc25e32d81249a4, https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/89xxx/CVE-2026-89492.json, https://nvd.nist.gov/vuln/detail/CVE-2026-89492, https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git

Severity

9.8

CVSS Score
0
10

Basic Information

Base CVSS
9.8
EPSS Probability
0.00635%
EPSS Percentile
0.4881%
Introduced Version
9b7895efac906d66d19856194e1ba61f37e231a4,2.6.30,6.13.0,6.19.0,0
Fix Available
bc70726ddad53c7e9a9a85915bf2415b0d4f42f9,6.12.111,6.18.51,7.2.4,6.12.111-1~deb12u1,6.12.111-1,0:6.12.0-207.111.5.1.el10uek,0:6.12.0-207.111.5.1.el9uek

Fix Critical Vulnerabilities Instantly

Secure your app without upgrading.
Fix Without Upgrading