CVE-2025-68356
NoneCVSS
—
EPSS
0.2%
Published
Dec 24, 2025
CISA due date
—
Cloudanix analysis
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
- Obtain local code execution on a host with GFS2 mounted
- Trigger memory pressure via allocation-heavy workloads or other means
- Invoke GFS2 operations that allocate inodes or call unstuff_dinode inside transactions
- 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
- CVE-2026-23226 In the Linux kernel, the following vulnerability has been resolved: ksmbd: add chann_lock… Also affects Kernel
- CVE-2026-23225 In the Linux kernel, the following vulnerability has been resolved: sched/mmcid: Don't… Also affects Kernel
- CVE-2026-23230 In the Linux kernel, the following vulnerability has been resolved: smb: client: split… Also affects Kernel
- CVE-2026-23224 In the Linux kernel, the following vulnerability has been resolved: erofs: fix UAF issue… Also affects Kernel
- CVE-2026-23227 In the Linux kernel, the following vulnerability has been resolved: drm/exynos: vidi: use… Also affects Kernel
- CVE-2026-23223 In the Linux kernel, the following vulnerability has been resolved: xfs: fix UAF in… Also affects Kernel
- CVE-2026-23228 In the Linux kernel, the following vulnerability has been resolved: smb: server: fix leak… Also affects Kernel
- CVE-2026-23229 In the Linux kernel, the following vulnerability has been resolved: crypto: virtio - Add… Also affects Kernel