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
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Recon
    Obtain local low-privilege shell
  2. Delivery
    Open inotify/fanotify watcher on target filesystem
  3. Exploit
    Spawn concurrent thread to remove existing mark
  4. Install
    Race mark removal into fsnotify_recalc_mask() gap
  5. C2
    Inode reference leaked without fsnotify_drop_object() call
  6. Execute
    Repeat to accumulate leaked references
  7. Impact
    Trigger unmount to hang indefinitely in fsnotify_sb_delete()

Vulnerability Assessment

Exploitation Conditions

Exploitation requires a local account with at least low-privilege access (CVSS PR:L confirmed). The attacker must be able to create fsnotify watchers on a mounted filesystem - standard inotify_add_watch() or fanotify_mark() API calls available to unprivileged users on most Linux distributions. The race window is the brief interval between fsnotify_add_mark_list() releasing conn->lock and fsnotify_recalc_mask() being invoked in the same thread, during which a concurrent thread calls fsnotify_detach_mark() on a different mark on the same connector. Triggering the race reliably requires multi-threaded workload with deliberate timing; accidental triggering under normal workloads is possible but unlikely. Remote exploitation is not possible (AV:L). No special non-default configuration is required - the vulnerable code path is reached via normal fsnotify usage on any mounted filesystem. Limiting factors: local access required, race timing dependency increases practical difficulty beyond the AC:L CVSS rating, and impact is limited to local DoS with no data exposure.

Impact

CVSS 5.5 Medium (AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H) and EPSS at 0.18% (7th percentile) together signal a very low real-world exploitation priority. The vulnerability is not in CISA KEV and no public exploit code has been identified. Practical exploitation requires local access, low privileges, and deliberate race-condition timing - it cannot be triggered remotely and does not yield code execution or data access. The sole impact is availability: a hung task on the umount path, observable as a 120-second block in fsnotify_sb_delete(). The assigned AC:L in the NVD vector is arguably optimistic for a race condition requiring precise thread interleaving; the realistic exploitation complexity is higher than AC:L implies. The 'Information Disclosure' tag in the input is inconsistent with CVSS (C:N) and the description - this discrepancy should be verified with the vendor but does not change the risk posture. For most environments this is a patch-on-next-cycle issue rather than an emergency, unless unmount reliability is operationally critical (e.g., container orchestration environments that frequently unmount volumes).

Exploit ScenarioDerived

A local user spawns two threads that simultaneously add and remove fsnotify marks on the same filesystem connector object, deliberately timing the removal to land in the gap between conn->lock release in fsnotify_add_mark_list() and the call to fsnotify_recalc_mask(). This causes __fsnotify_recalc_mask() to return a non-NULL inode pointer that is discarded, leaking the reference. Repeating this accumulates leaked references on the superblock's watched-objects count, causing any subsequent unmount of that filesystem to hang indefinitely in fsnotify_sb_delete() waiting for a reference count that will never reach zero. No public proof-of-concept exists for this scenario.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Jul 14, 2026

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.

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.

Affected VersionsENISA

Linux 5.10.220 <5.11
Linux patch: 6.18.33
Linux patch: 7.0.10
Linux patch: 0
Linux c3638b5b13740fa31762d414bbce8b7a694e582a <4aca914ac152f5d055ddcb36704d1e539ac08977
Linux 5.15.154 <5.16
Linux patch: 7.1
Linux c3638b5b13740fa31762d414bbce8b7a694e582a <8c8afa6444e6bdc145d2bf2f3aeeca6da3e36b42
Linux ff34ebaa6f6dc1eebce6a8d6f12a1566f33d00fe
Linux patch: 6.12.91
Linux 4f145b67c075324b13d6ae7d5abb6e7a1dbac26d
Linux c3638b5b13740fa31762d414bbce8b7a694e582a <b740cc86816bbc87902ae9db74cd21abde3c8d63
Linux c3638b5b13740fa31762d414bbce8b7a694e582a <5c80289503da3658e3df80280598c68d181eadbd
Linux 5.19

Affected Packages

euvd linux fix: 5.11, 5.16

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

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.

Know when the next one hits your stack

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

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

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

4
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).

Threat Intelligence Overview

EPSS Score
0.2%
Top 93% exploitable
Prevalence
Ubiquitous
Linux kernel underlies nearly all cloud, server, and container infrastructure globally
Data Quality
6 sources
Confidence: High

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Small
Automatable· derived
No
Human Impact· derived
High

Priority Score

28
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +28
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

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

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