CVE-2025-38710: gfs2: Validate i_depth for exhash directories
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'.
Security readout for executives and security teams
Plain-English summary
CVE-2025-38710 is a Linux kernel GFS2 filesystem flaw. Corrupted directory metadata can leave an exhash directory with an invalid depth of 0, triggering undefined kernel behavior. The public record shows a kernel fix and syzkaller testing, but no CVSS score or confirmed exploitation.
Executive priority
Treat as a targeted kernel maintenance issue for GFS2 environments, not a broad emergency from current evidence. Patch affected Linux clusters through normal urgent maintenance, escalating only where GFS2 is actively used on critical systems.
Technical view
In GFS2, dir_e_read() shifts by 32 when dip->i_depth is 0. The fix validates exhash directory i_depth in gfs2_dinode_in(), rejecting values below the calculated minimum; excessive values were already checked. The patch also clarifies depth calculation in dir_make_exhash() using ilog2().
Likely exposure
Exposure appears limited to Linux systems using or able to mount GFS2 filesystems, especially shared-storage clusters. Systems without GFS2 mounted or enabled are less likely to be exposed. Distribution-specific fixed package versions are not provided in the source bundle.
Exploitation context
The source describes discovery through fuzzing with a syzkaller reproducer and validation with xfstests. CISA KEV status is false in the bundle, and no cited source states active exploitation or public weaponization.
Researcher notes
Key uncertainty is impact severity: the source only states undefined behavior from an invalid shift caused by corrupted metadata. It does not establish privilege boundaries, remote reachability, crash reliability, or data compromise. Avoid assuming exploitability beyond malformed or corrupted GFS2 metadata handling.
Mitigation direction
Apply Linux kernel updates containing the referenced GFS2 validation fix.
Prioritize hosts that mount GFS2, including cluster and shared-storage nodes.
Check distribution vendor advisories for exact fixed kernel package versions.
If patching is delayed, reduce unnecessary GFS2 mounting where operationally possible.
Validation and detection
Inventory Linux hosts for mounted or configured GFS2 filesystems.
Map running kernel versions to vendor advisories or referenced stable commits.
Confirm patched kernels include validation for exhash directory i_depth.
Review kernel logs for GFS2 filesystem corruption or mount errors.
Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.
Potential ATT&CK relevance
Conservative CVE-to-ATT&CK context
These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.
ATT&CK lookup starting points
Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.
cve · low confidence lookup
CVE-2025-38710 mapping review
Open the CVE-to-ATT&CK bridge for reviewed, inferred, or future official mappings tied to this CVE.
These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.
0CVSS vectors
3Timeline events
0ADP providers
9Source links
Vulnerability timeline
Timeline events are normalized from CVE metadata, CNA source timelines, ADP timelines, and KEV metadata when present.
CVE reservedCVE Program
The CVE ID was reserved by the assigning CNA.
CVE publishedCVE Program
The CVE record was published.
Sep 4, 2025, 15:33 UTC (UTC+00:00)
CVE updatedCVE Program
The CVE record metadata indicates this as the latest update time.