CVE-2025-38710

MEDIUM

Linux Kernel < 6.12.43, 6.13.0-6.15.11, 6.16.0-6.16.2 - Denial of Service via Invalid Directory Depth in GFS2

Title source: llm
STIX 2.1

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'.

Scores

CVSS v3 5.5
EPSS 0.0014
EPSS Percentile 3.4%
Attack Vector LOCAL
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H

Details

Status published
Products (27)
linux/Kernel 2.6.26 - 5.10.258linux
linux/Kernel 2.6.26 - 6.12.43linux
linux/Kernel 5.11.0 - 5.15.209linux
linux/Kernel 5.16.0 - 6.1.175linux
linux/Kernel 6.13.0 - 6.15.11linux
linux/Kernel 6.16.0 - 6.16.2linux
linux/Kernel 6.2.0 - 6.6.134linux
linux/Kernel 6.7.0 - 6.12.43linux
Linux/Linux < 2.6.26
Linux/Linux 2.6.26
... and 17 more
Published Sep 04, 2025
Tracked Since Feb 18, 2026