Skip to main content

Linux Kernel CVE-2026-52990

| EUVDEUVD-2026-38858 MEDIUM
2026-06-24 Linux GHSA-mrgj-88f9-5g2f
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
4.7 MEDIUM

Race condition requires precise inter-thread timing beyond attacker control (AC:H); local low-privilege access required; impact is purely availability via resource exhaustion.

3.1 AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:H
4.0 AV:L/AC:L/AT:P/PR:L/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
SUSE
4.7 MEDIUM
AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:H
Red Hat
5.5 MEDIUM
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

5
Analysis Generated
Jul 14, 2026 - 16:54 vuln.today
CVSS changed
Jul 14, 2026 - 16:52 NVD
5.5 (MEDIUM)
Patch available
Jun 24, 2026 - 18:02 EUVD
CVE Published
Jun 24, 2026 - 16:29 nvd
MEDIUM 5.5
CVE Published
Jun 24, 2026 - 16:29 cve.org
UNKNOWN (no severity yet)

DescriptionNVD

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

fsnotify: fix inode reference leak in fsnotify_recalc_mask()

fsnotify_recalc_mask() fails to handle the return value of __fsnotify_recalc_mask(), which may return an inode pointer that needs to be released via fsnotify_drop_object() when the connector's HAS_IREF flag transitions from set to cleared.

This manifests as a hung task with the following call trace:

INFO: task umount:1234 blocked for more than 120 seconds. Call Trace: __schedule schedule fsnotify_sb_delete generic_shutdown_super kill_anon_super cleanup_mnt task_work_run do_exit do_group_exit

The race window that triggers the iref leak:

Thread A (adding mark) Thread B (removing mark) ────────────────────── ──────────────────────── fsnotify_add_mark_locked(): fsnotify_add_mark_list(): spin_lock(conn->lock) add mark_B(evictable) to list spin_unlock(conn->lock) return

/* ---- gap: no lock held ---- */

fsnotify_detach_mark(mark_A): spin_lock(mark_A->lock) clear ATTACHED flag on mark_A spin_unlock(mark_A->lock) fsnotify_put_mark(mark_A)

fsnotify_recalc_mask(): spin_lock(conn->lock) __fsnotify_recalc_mask(): /* mark_A skipped: ATTACHED cleared */ /* only mark_B(evictable) remains */ want_iref = false has_iref = true /* not yet cleared */ -> HAS_IREF transitions true -> false -> returns inode pointer spin_unlock(conn->lock) /* BUG: return value discarded!

  • iput() and fsnotify_put_sb_watched_objects()
  • are never called */

Fix this by deferring the transition true -> false of HAS_IREF flag from fsnotify_recalc_mask() (Thread A) to fsnotify_put_mark() (thread B).

AnalysisAI

Resource leak in the Linux kernel fsnotify subsystem causes hung tasks and local denial of service via a race condition in fsnotify_recalc_mask(). A local low-privilege user can trigger concurrent mark addition and removal on a filesystem connector object, causing an inode pointer returned by __fsnotify_recalc_mask() to be silently discarded rather than released via fsnotify_drop_object() - permanently blocking the umount path as fsnotify_sb_delete() waits indefinitely on the leaked reference. No public exploit exists and EPSS is at the 7th percentile, indicating negligible opportunistic exploitation risk.

Technical ContextAI

The Linux kernel's fsnotify framework (cpe:2.3:a:linux:linux:*:*:*:*:*:*:*:*) is the core infrastructure backing inotify and fanotify filesystem event notification. Each filesystem object (inode, mount, superblock) holds a fsnotify_mark_connector, which tracks active watchers and a HAS_IREF flag indicating whether the connector holds an inode reference. The bug is a missing return-value check: __fsnotify_recalc_mask() returns a non-NULL inode pointer when HAS_IREF transitions from true to false (signaling the caller to release it via iput() + fsnotify_put_sb_watched_objects()), but fsnotify_recalc_mask() discards this pointer entirely. The race window is the gap between conn->lock being released in fsnotify_add_mark_list() and the subsequent call to fsnotify_recalc_mask() - during which a concurrent thread can detach a mark and clear its ATTACHED flag, producing conditions that trigger the flag transition. CWE is listed as N/A but the root cause maps to CWE-772 (Missing Release of Resource after Effective Lifetime). The input tags include 'Information Disclosure,' which conflicts with both the description (the leak is an inode reference, not a data exposure) and the CVSS vector (C:N/I:N/A:H) - this tag appears to be a mislabeling.

RemediationAI

Apply vendor-released kernel patches, which are available across stable branches via kernel.org. Patched versions include 5.10.220 (5.10.x series), 5.15.154 (5.15.x series), 6.12.91, 6.18.33, 7.0.10, and 7.1 for current branches. The four upstream fix commits are: https://git.kernel.org/stable/c/8c8afa6444e6bdc145d2bf2f3aeeca6da3e36b42, https://git.kernel.org/stable/c/b740cc86816bbc87902ae9db74cd21abde3c8d63, https://git.kernel.org/stable/c/5c80289503da3658e3df80280598c68d181eadbd, and https://git.kernel.org/stable/c/4aca914ac152f5d055ddcb36704d1e539ac08977. The fix defers the HAS_IREF flag transition from fsnotify_recalc_mask() to fsnotify_put_mark(), eliminating the race window. Where immediate patching is not feasible, restricting unprivileged use of inotify/fanotify via kernel parameters (e.g., /proc/sys/fs/inotify/max_user_instances set to 0 for non-root users) reduces the attack surface at the cost of breaking legitimate filesystem monitoring for those users. Distributions based on these stable branches should be consulted for their own backport timelines.

Vendor StatusVendor

SUSE

Severity: Moderate
Product Status
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
SUSE Linux Enterprise High Availability Extension 16.0 Affected

Share

CVE-2026-52990 vulnerability details – vuln.today

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