CVE-2025-38710

EUVD-2025-26759
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'.
ProviderTypeBase ScoreAtk. VectorAtk. ComplexityPriv. RequiredVector
NISTPrimary
5.5 MEDIUM
LOCAL
LOW
LOW
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
Base Score
CVSS 3.x
EPSS Score
Percentile: 5%
Affected Products (NVD)
VendorProductVersion
linuxlinux_kernel
𝑥
< 6.12.43
linuxlinux_kernel
6.13 ≤
𝑥
< 6.15.11
linuxlinux_kernel
6.16 ≤
𝑥
< 6.16.2
𝑥
= Vulnerable software versions
Debian logo
Debian Releases
Debian Product
Codename
linux
bookworm
vulnerable
bookworm (security)
vulnerable
bullseye
vulnerable
bullseye (security)
vulnerable
forky
7.0.9-1
fixed
sid
7.0.10-1
fixed
trixie
6.12.86-1
fixed
trixie (security)
6.12.90-2
fixed
openSUSE logo
openSUSE / SLES Releases
openSUSE Product
Release
kernel-64kb
suse enterprise desktop 15 SP7
6.4.0-150700.53.19.1
fixed
suse enterprise sap 15 SP7
6.4.0-150700.53.19.1
fixed
suse enterprise server 15 SP7
6.4.0-150700.53.19.1
fixed
kernel-azure
suse enterprise sap 15 SP7
6.4.0-150700.20.15.2
fixed
suse enterprise server 15 SP7
6.4.0-150700.20.15.2
fixed
kernel-default
suse enterprise desktop 15 SP7
6.4.0-150700.53.19.1
fixed
suse enterprise sap 15 SP7
6.4.0-150700.53.19.1
fixed
suse enterprise server 15 SP7
6.4.0-150700.53.19.1
fixed
kernel-default-base
suse enterprise desktop 15 SP7
6.4.0-150700.53.19.1.150700.17.13.1
fixed
suse enterprise sap 15 SP7
6.4.0-150700.53.19.1.150700.17.13.1
fixed
suse enterprise server 15 SP7
6.4.0-150700.53.19.1.150700.17.13.1
fixed
kernel-docs
suse enterprise desktop 15 SP7
6.4.0-150700.53.19.1
fixed
suse enterprise sap 15 SP7
6.4.0-150700.53.19.1
fixed
suse enterprise server 15 SP7
6.4.0-150700.53.19.1
fixed
kernel-macros
suse enterprise desktop 15 SP7
6.4.0-150700.53.19.1
fixed
suse enterprise sap 15 SP7
6.4.0-150700.53.19.1
fixed
suse enterprise server 15 SP7
6.4.0-150700.53.19.1
fixed
kernel-obs-build
suse enterprise desktop 15 SP7
6.4.0-150700.53.19.1
fixed
suse enterprise sap 15 SP7
6.4.0-150700.53.19.1
fixed
suse enterprise server 15 SP7
6.4.0-150700.53.19.1
fixed
kernel-source
suse enterprise desktop 15 SP7
6.4.0-150700.53.19.1
fixed
suse enterprise sap 15 SP7
6.4.0-150700.53.19.1
fixed
suse enterprise server 15 SP7
6.4.0-150700.53.19.1
fixed
kernel-source-azure
suse enterprise sap 15 SP7
6.4.0-150700.20.15.2
fixed
suse enterprise server 15 SP7
6.4.0-150700.20.15.2
fixed
kernel-syms
suse enterprise desktop 15 SP7
6.4.0-150700.53.19.1
fixed
suse enterprise sap 15 SP7
6.4.0-150700.53.19.1
fixed
suse enterprise server 15 SP7
6.4.0-150700.53.19.1
fixed
kernel-syms-azure
suse enterprise sap 15 SP7
6.4.0-150700.20.15.1
fixed
suse enterprise server 15 SP7
6.4.0-150700.20.15.1
fixed
kernel-zfcpdump
suse enterprise desktop 15 SP7
6.4.0-150700.53.19.1
fixed
suse enterprise sap 15 SP7
6.4.0-150700.53.19.1
fixed
suse enterprise server 15 SP7
6.4.0-150700.53.19.1
fixed