Cloudanix VulnDB

CVE-2025-68356

None

CVSS

—

EPSS

0.2%

Published

Dec 24, 2025

CISA due date

—

Cloudanix analysis

Next patch cycle SSVC: Track

A bug in certain Linux storage code could make computers using shared filesystems crash or freeze when memory runs low, and the fix is to install the latest software updates.

Exploitation
Local Privilege
Attacker needs
Local User
Complexity
Moderate
Impact
Denial Of Service
Component
OS kernel
Class
Race Condition
Remediation
Patch
Effort
Medium
Patch risk
Low

What it actually does

The vulnerability allows new inodes in GFS2 to inherit a gfp_mask containing __GFP_FS, permitting memory reclaim to recurse into filesystem code during transactions such as gfs2_unstuff_dinode(), leading to stack exhaustion or deadlock.

Why it matters to the business

Systems relying on GFS2 filesystems face elevated risk of crashes or hangs under memory pressure, resulting in storage service disruption and potential downtime in clustered or high-availability environments; widespread kernel usage increases exposure across many deployments.

How an attack unfolds

An attacker with local access induces memory pressure while GFS2 performs inode allocation or transaction operations, causing reclaim paths to re-enter filesystem code and trigger deadlock or stack overflow.

How to fix it

Apply the upstream fix (commit edb2b255618621dc83d0ec23150e16b2c697077f) or later stable kernels; for listed Chainguard images update to version 3.6.5-r2 or newer.

How to confirm the fix worked

Confirm kernel source contains the gfp_mask adjustment that clears __GFP_FS from inode address spaces, or verify running kernel version includes the referenced commit; test under memory pressure with GFS2 workloads to ensure no recursion occurs.

Typical attack path

  1. Obtain local code execution on a host with GFS2 mounted
  2. Trigger memory pressure via allocation-heavy workloads or other means
  3. Invoke GFS2 operations that allocate inodes or call unstuff_dinode inside transactions
  4. Allow reclaim to recurse and exhaust stack or deadlock

How to detect it

Examine kernel logs and dmesg for GFS2 transaction or reclaim-related stack traces, panics, or warnings under memory pressure conditions; correlate with workload patterns that allocate inodes.

What your security team should do

  • Prioritize kernel upgrades on all hosts using GFS2 within the next patch cycle
  • Review and test GFS2-dependent workloads after applying updates
  • Monitor memory usage patterns on GFS2 systems until patches are deployed

The record

In the Linux kernel, the following vulnerability has been resolved: gfs2: Prevent recursive memory reclaim Function new_inode() returns a new inode with inode->i_mapping->gfp_mask set to GFP_HIGHUSER_MOVABLE. This value includes the __GFP_FS flag, so allocations in that address space can recurse into filesystem memory reclaim. We don't want that to happen because it can consume a significant amount of stack memory. Worse than that is that it can also deadlock: for example, in several places, gfs2_unstuff_dinode() is called inside filesystem transactions. This calls filemap_grab_folio(), which can allocate a new folio, which can trigger memory reclaim. If memory reclaim recurses into the filesystem and starts another transaction, a deadlock will ensue. To fix these kinds of problems, prevent memory reclaim from recursing into filesystem code by making sure that the gfp_mask of inode address spaces doesn't include __GFP_FS. The "meta" and resource group address spaces were already using GFP_NOFS as their gfp_mask (which doesn't include __GFP_FS). The default value of GFP_HIGHUSER_MOVABLE is less restrictive than GFP_NOFS, though. To avoid being overly limiting, use the default value and only knock off the __GFP_FS flag. I'm not sure if this will actually make a difference, but it also shouldn't hurt. This patch is loosely based on commit ad22c7a043c2 ("xfs: prevent stack overflows from page cache allocation"). Fixes xfstest generic/273.

Affected packages

Ecosystem Package Introduced Fixed
Linux Kernel 6.6.0 6.12.63
openSUSE:Leap 16.0 dtb-aarch64 0 6.12.0-160000.26.1
openSUSE:Leap 16.0 kernel-64kb 0 6.12.0-160000.26.1
openSUSE:Leap 16.0 kernel-azure 0 6.12.0-160000.26.1
openSUSE:Leap 16.0 kernel-default 0 6.12.0-160000.26.1
openSUSE:Leap 16.0 kernel-default-base 0 6.12.0-160000.26.1.160000.2.7
openSUSE:Leap 16.0 kernel-docs 0 6.12.0-160000.26.1
openSUSE:Leap 16.0 kernel-kvmsmall 0 6.12.0-160000.26.1
openSUSE:Leap 16.0 kernel-obs-build 0 6.12.0-160000.26.1
openSUSE:Leap 16.0 kernel-obs-qa 0 6.12.0-160000.26.1
openSUSE:Leap 16.0 kernel-rt 0 6.12.0-160000.26.1
openSUSE:Leap 16.0 kernel-source 0 6.12.0-160000.26.1
openSUSE:Leap 16.0 kernel-syms 0 6.12.0-160000.26.1
openSUSE:Leap 16.0 kernel-zfcpdump 0 6.12.0-160000.26.1
openSUSE:Tumbleweed kernel-source 0 6.18.5-1.1
openSUSE:Tumbleweed kernel-source-longterm 0 6.18.16-1.1

Related vulnerabilities