Skip to main content

Linux Kernel CVE-2026-31567

| EUVDEUVD-2026-25460 MEDIUM
Reachable Assertion (CWE-617)
2026-04-24 Linux GHSA-mxfm-927r-8r7x
5.5
CVSS 3.1 · NVD
Share

Severity by source

NVD PRIMARY
5.5 MEDIUM
AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
vuln.today AI
5.5 MEDIUM

Local access with low privilege to /dev/snapshot; availability impact is high only under panic_on_warn=1, but the trigger condition itself is AC:L.

3.1 AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
4.0 AV:L/AC:L/AT:N/PR:L/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
SUSE
MEDIUM
qualitative
Red Hat
5.5 LOW
qualitative

Primary rating from NVD.

CVSS VectorNVD

Attack Vector
Local
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
None
Availability
High

Lifecycle Timeline

6
Analysis Generated
Jul 24, 2026 - 03:09 vuln.today
CVSS changed
Apr 27, 2026 - 20:37 NVD
5.5 (MEDIUM)
Patch released
Apr 27, 2026 - 20:32 nvd
Patch available
Patch available
Apr 24, 2026 - 16:16 EUVD
EUVD ID Assigned
Apr 24, 2026 - 15:00 euvd
EUVD-2026-25460
CVE Published
Apr 24, 2026 - 14:35 nvd
MEDIUM 5.5

DescriptionCVE.org

In the Linux kernel, the following vulnerability has been resolved:

PM: sleep: Drop spurious WARN_ON() from pm_restore_gfp_mask()

Commit 35e4a69b2003f ("PM: sleep: Allow pm_restrict_gfp_mask() stacking") introduced refcount-based GFP mask management that warns when pm_restore_gfp_mask() is called with saved_gfp_count == 0.

Some hibernation paths call pm_restore_gfp_mask() defensively where the GFP mask may or may not be restricted depending on the execution path. For example, the uswsusp interface invokes it in SNAPSHOT_CREATE_IMAGE, SNAPSHOT_UNFREEZE, and snapshot_release(). Before the stacking change this was a silent no-op; it now triggers a spurious WARNING.

Remove the WARN_ON() wrapper from the !saved_gfp_count check while retaining the check itself, so that defensive calls remain harmless without producing false warnings.

[ rjw: Subject tweak ]

AnalysisAI

Spurious WARN_ON() in the Linux kernel's PM sleep subsystem (pm_restore_gfp_mask()) can be triggered by defensive hibernation code paths, causing kernel warning floods or, on systems with panic_on_warn=1, a full kernel panic and denial of service. Affected kernels contain commit 35e4a69b2003f introducing refcount-based GFP mask stacking but lack the corrective fix removing the assertion from the zero-count guard. No active exploitation confirmed (not in CISA KEV), and EPSS is 0.02% (4th percentile), consistent with a low-risk code-quality defect rather than a targeted vulnerability.

Technical ContextAI

The Linux kernel's power management sleep subsystem manages GFP (Get Free Pages) memory allocation flags during suspend/hibernate cycles via pm_restrict_gfp_mask() and pm_restore_gfp_mask(). Commit 35e4a69b2003f introduced refcount-based stacking of GFP mask restrictions (saved_gfp_count), adding a WARN_ON() guard when pm_restore_gfp_mask() is called with the counter already at zero. The uswsusp (userspace software suspend) hibernation interface legitimately calls pm_restore_gfp_mask() defensively in three code paths - SNAPSHOT_CREATE_IMAGE, SNAPSHOT_UNFREEZE, and snapshot_release() - where the GFP mask may or may not be restricted depending on execution flow. These defensive calls were silent no-ops before the stacking commit but now reachably trigger the assertion, classifying this as CWE-617 (Reachable Assertion). On kernels configured with panic_on_warn=1 (common in hardened or production environments), the WARN_ON() escalates to a kernel panic. Additionally, kernel warning output can expose stack traces and internal addresses, which partially explains the 'Information Disclosure' tag - though NVD's CVSS scores this as C:N, treating the address leak as non-exploitable in isolation. Affected CPE: cpe:2.3:a:linux:linux:*:*:*:*:*:*:*:*.

RemediationAI

Upgrade to a patched Linux kernel release: 6.18.21, 6.19.11, or 7.0, available via upstream stable branches at https://git.kernel.org/stable/c/3025ca5daa9d682b629c0c958b538e41deeb559d (7.0), https://git.kernel.org/stable/c/f19d1323aa3dd7ead469aef47d9085f8939565d9 (6.19.11), and https://git.kernel.org/stable/c/a8d51efb5929ae308895455a3e496b5eca2cd143 (6.18.21). Red Hat and SUSE users should apply distribution-specific kernel errata when published; watch vendor channels as both are tagged in the advisory data. As an immediate workaround on systems where patching is not yet possible, operators running panic_on_warn=1 can set the kernel parameter panic_on_warn=0 to prevent the WARN_ON() from escalating to a kernel panic - this eliminates the DoS risk while leaving the spurious warning in kernel logs, which is benign. Trade-off: panic_on_warn=0 may suppress other legitimate kernel assertions in the same session, reducing crash-dump capture for other bugs. Disabling hibernate/suspend entirely (via kernel parameters or systemd masking of hibernate.target) also prevents the vulnerable code paths from executing, at the cost of losing power management functionality.

Vendor StatusVendor

SUSE

Severity: Medium
Product Status
SUSE Linux Enterprise Desktop 15 SP7 Fixed
SUSE Linux Enterprise Desktop 15 SP7 Fixed
SUSE Linux Enterprise High Availability Extension 15 SP7 Fixed
SUSE Linux Enterprise High Availability Extension 15 SP7 Fixed
SUSE Linux Enterprise High Performance Computing 15 SP7 Fixed

Share

CVE-2026-31567 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy