Skip to main content

Linux Kernel EUVDEUVD-2026-32298

| CVE-2026-46002 MEDIUM
2026-05-27 416baaa9-dc9f-4396-8d5f-8c081fb06d67 GHSA-7x9q-gpxg-j6xg
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 mount capability with low privilege (user namespace) suffices to trigger the kernel WARN_ON via crafted image; no confidentiality or integrity impact applies.

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

CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
Attack Vector
Local
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
None
Availability
High

Lifecycle Timeline

5
Analysis Generated
Jun 16, 2026 - 15:53 vuln.today
CVSS changed
Jun 16, 2026 - 15:37 NVD
5.5 (MEDIUM)
Patch available
May 27, 2026 - 19:46 EUVD
CVE Published
May 27, 2026 - 14:17 nvd
MEDIUM 5.5
CVE Published
May 27, 2026 - 14:17 nvd
UNKNOWN (no severity yet)

DescriptionNVD

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

ext2: reject inodes with zero i_nlink and valid mode in ext2_iget()

ext2_iget() already rejects inodes with i_nlink 0 when i_mode is zero or i_dtime is set, treating them as deleted. However, the case of i_nlink 0 with a non-zero mode and zero dtime slips through. Since ext2 has no orphan list, such a combination can only result from filesystem corruption - a legitimate inode deletion always sets either i_dtime or clears i_mode before freeing the inode.

A crafted image can exploit this gap to present such an inode to the VFS, which then triggers WARN_ON inside drop_nlink() (fs/inode.c) via ext2_unlink(), ext2_rename() and ext2_rmdir():

WARNING: CPU: 3 PID: 609 at fs/inode.c:336 drop_nlink+0xad/0xd0 fs/inode.c:336 CPU: 3 UID: 0 PID: 609 Comm: syz-executor Not tainted 6.12.77+ #1 Call Trace: <TASK> inode_dec_link_count include/linux/fs.h:2518 [inline] ext2_unlink+0x26c/0x300 fs/ext2/namei.c:295 vfs_unlink+0x2fc/0x9b0 fs/namei.c:4477 do_unlinkat+0x53e/0x730 fs/namei.c:4541 __x64_sys_unlink+0xc6/0x110 fs/namei.c:4587 do_syscall_64+0xf5/0x220 arch/x86/entry/common.c:78 entry_SYSCALL_64_after_hwframe+0x77/0x7f </TASK>

WARNING: CPU: 0 PID: 646 at fs/inode.c:336 drop_nlink+0xad/0xd0 fs/inode.c:336 CPU: 0 UID: 0 PID: 646 Comm: syz.0.17 Not tainted 6.12.77+ #1 Call Trace: <TASK> inode_dec_link_count include/linux/fs.h:2518 [inline] ext2_rename+0x35e/0x850 fs/ext2/namei.c:374 vfs_rename+0xf2f/0x2060 fs/namei.c:5021 do_renameat2+0xbe2/0xd50 fs/namei.c:5178 __x64_sys_rename+0x7e/0xa0 fs/namei.c:5223 do_syscall_64+0xf5/0x220 arch/x86/entry/common.c:78 entry_SYSCALL_64_after_hwframe+0x77/0x7f </TASK>

WARNING: CPU: 0 PID: 634 at fs/inode.c:336 drop_nlink+0xad/0xd0 fs/inode.c:336 CPU: 0 UID: 0 PID: 634 Comm: syz-executor Not tainted 6.12.77+ #1 Call Trace: <TASK> inode_dec_link_count include/linux/fs.h:2518 [inline] ext2_rmdir+0xca/0x110 fs/ext2/namei.c:311 vfs_rmdir+0x204/0x690 fs/namei.c:4348 do_rmdir+0x372/0x3e0 fs/namei.c:4407 __x64_sys_unlinkat+0xf0/0x130 fs/namei.c:4577 do_syscall_64+0xf5/0x220 arch/x86/entry/common.c:78 entry_SYSCALL_64_after_hwframe+0x77/0x7f </TASK>

Extend the existing i_nlink == 0 check to also catch this case, reporting the corruption via ext2_error() and returning -EFSCORRUPTED. This rejects the inode at load time and prevents it from reaching any of the namei.c paths.

Found by Linux Verification Center (linuxtesting.org) with Syzkaller.

AnalysisAI

The ext2 filesystem driver in the Linux kernel allows a local user to trigger kernel WARN_ON panics by mounting a crafted ext2 image containing an inode with zero link count (i_nlink=0), non-zero mode, and zero deletion timestamp - a combination that bypasses the incomplete corruption check in ext2_iget() and reaches drop_nlink() in an invalid state. Discovered by the Linux Verification Center using Syzkaller fuzzing, the flaw affects Linux kernel versions from 2.6.12 through multiple stable branches and results in denial of service via kernel instability. No public exploit exists and no KEV listing; EPSS is negligible at 0.02%, consistent with the local access requirement and specialized image-crafting prerequisite.

Technical ContextAI

The vulnerability resides in the Linux kernel ext2 filesystem driver, specifically in ext2_iget() (fs/ext2/inode.c), which loads inode metadata from disk during filesystem operations. The ext2 format tracks deletion state via i_nlink (hard link count) and i_dtime (deletion timestamp); legitimate deletion always either sets i_dtime or clears i_mode before freeing the inode. The existing check rejects i_nlink=0 only when i_mode is also zero or i_dtime is set, leaving the combination of i_nlink=0 plus non-zero i_mode plus zero i_dtime unguarded. Unlike ext3/ext4, ext2 has no orphan inode list, so this state can only arise from filesystem corruption or deliberate image construction. When such an inode passes ext2_iget() and enters the VFS layer, operations like ext2_unlink(), ext2_rename(), and ext2_rmdir() call inode_dec_link_count() → drop_nlink() at fs/inode.c:336, which fires WARN_ON because the link count is already zero - violating a core VFS invariant. Affected CPE: cpe:2.3:o:linux:linux_kernel starting from version 2.6.12.

RemediationAI

Update to a patched kernel version: Linux 6.6.140, 6.12.86, 6.18.27, 7.0.4, or 7.1-rc1, applying the upstream stable commits available at https://git.kernel.org/stable/c/25947cc5b2374cd5bf627fe3141496444260d04f and related commits. Distribution-specific updates should be applied through the vendor's package manager as they become available. For systems that cannot be patched immediately, disabling unprivileged user namespace mounts via sysctl kernel.unprivileged_userns_clone=0 (Debian/Ubuntu) or setting kernel.unprivileged_userns_clone=0 in /etc/sysctl.d/ removes the primary unprivileged attack vector - note this will break rootless container tools such as Podman and Buildah, and some Chromium sandbox configurations. Alternatively, restrict mount operations via seccomp-bpf profiles or mandatory access control policies (AppArmor, SELinux) to prevent untrusted users from mounting arbitrary block devices or loop images. If ext2 is not needed in the environment, blacklisting the ext2 kernel module (echo 'blacklist ext2' > /etc/modprobe.d/ext2-blacklist.conf) eliminates the attack surface entirely, though this may break legacy storage compatibility.

Vendor StatusVendor

SUSE

Severity: Moderate
Product Status
openSUSE Tumbleweed Fixed
SUSE Linux Enterprise Desktop 15 SP7 Affected
SUSE Linux Enterprise Desktop 15 SP7 Affected
SUSE Linux Enterprise High Availability Extension 15 SP7 Affected
SUSE Linux Enterprise High Availability Extension 15 SP7 Affected

Share

EUVD-2026-32298 vulnerability details – vuln.today

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