CVE-2025-38710

High

Description

In the Linux kernel, the following vulnerability has been resolved: gfs2: Validate i_depth for exhash directories A fuzzer test introduced corruption that ends up with a depth of 0 in dir_e_read(), causing an undefined shift by 32 at: index = hash >> (32 - dip->i_depth); As calculated in an open-coded way in dir_make_exhash(), the minimum depth for an exhash directory is ilog2(sdp->sd_hash_ptrs) and 0 is invalid as sdp->sd_hash_ptrs is fixed as sdp->bsize / 16 at mount time. So we can avoid the undefined behaviour by checking for depth values lower than the minimum in gfs2_dinode_in(). Values greater than the maximum are already being checked for there. Also switch the calculation in dir_make_exhash() to use ilog2() to clarify how the depth is calculated. Tested with the syzkaller repro.c and xfstests '-g quick'.

SeverityHigh
CVSS7.8
Exploit probability—
ProductLinux Kernel
PublishedSep 4, 2025
First seenSep 4, 2025

How to fix

Update
  • linux linux_kernel6.12.43, 6.15.11, 6.16.2 or later

Affected products

ProductAffected versionsFixed in
linux linux_kernelv < 6.12.43, 6.13 ≤ v < 6.15.11, 6.16 ≤ v < 6.16.26.12.43, 6.15.11, 6.16.2

Check your version

Choose the product and enter the version you run to see whether it falls in the affected range.

In the Intelligence 360 plan

Attack Surface Management

See the assets tied to your domains, the technologies they run and known vulnerabilities in one list.

CVE-2025-38710 · Linux Kernel · Dark Radar