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

fhandle: fix UAF due to unlocked ->mnt_ns read in may_decode_fh()

may_decode_fh() accesses mount::mnt_ns without holding any locks; that
means the mount can concurrently be unmounted, and the mnt_namespace can
concurrently be freed after an RCU grace period.

This race can happens as follows, assuming that the mount point was
created by open_tree(..., OPEN_TREE_CLONE):

thread 1 thread 2 RCU
__do_sys_open_by_handle_at
do_handle_open
handle_to_path
may_decode_fh
is_mounted
[mount::mnt_ns access]
[mount::mnt_ns access]
__do_sys_close
fput_close_sync
__fput
dissolve_on_fput
umount_tree
class_namespace_excl_destructor
namespace_unlock
free_mnt_ns
mnt_ns_tree_remove
call_rcu(mnt_ns_release_rcu)
mnt_ns_release_rcu
mnt_ns_release
kfree
[mnt_namespace::user_ns access] **UAF**

Fix it by taking rcu_read_lock() around the mount::mnt_ns access, like
in __prepend_path().
Additionally, document the semantics of mount::mnt_ns, and use WRITE_ONCE()
for writers that can race with lockless readers.

This bug is unreachable unless one of the following is set:

- CONFIG_PREEMPTION
- CONFIG_RCU_STRICT_GRACE_PERIOD

because it requires an RCU grace period to happen during a syscall without
an explicit preemption.

This doesn't seem to have interesting security impact; worst-case, it could
leak the result of an integer comparison to userspace (from the level
check in cap_capable()), cause an endless loop, or crash the kernel by
dereferencing an invalid address.
Published: 2026-07-01
Score: 7.8 High
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

A use‑after‑free race exists in the Linux kernel’s may_decode_fh() function, where the mount namespace pointer is accessed without holding an RCU read lock, constituting a CWE‑364 race condition. The race can happen when a handle is opened through open_tree(..., OPEN_TREE_CLONE) while the mount point is concurrently unmounted, freeing the mnt_ns after an RCU grace period. The unchecked access can lead to a kernel crash, an endless loop, or, in the worst case, leaking the result of an integer comparison in cap_capable() to user space.

Affected Systems

All Linux kernel builds that contain the unguarded mnt_ns access in may_decode_fh() are potentially affected when one of the following configuration options is enabled: CONFIG_PREEMPTION or CONFIG_RCU_STRICT_GRACE_PERIOD. The specific kernel versions before the patch commit are not listed in the entry, so any historical kernel lacking the rcu_read_lock() on mnt_ns may be vulnerable. The vulnerability is tied to mounts created with open_tree(..., OPEN_TREE_CLONE).

Risk and Exploitability

The CVSS score of 7.0 places the flaw in the high severity range, while the EPSS score of less than 1% indicates a very low probability of exploitation in the wild. The vulnerability is not listed in CISA’s KEV catalog. Based on the description, it is inferred that an attacker would need to orchestrate a precise race condition between an open_by_handle operation and an unmount that completes an RCU grace period. The likelihood of such an event occurring without deliberate intervention is low, and the impact is primarily a denial of service via kernel crash, with only subtle side channels as secondary consequences.

Generated by OpenCVE AI on July 21, 2026 at 14:42 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Apply a kernel update that contains the rcu_read_lock() protection for may_decode_fh()
  • Reboot the system so the patched kernel is loaded
  • If upgrading is not immediately possible, disable CONFIG_PREEMPTION or CONFIG_RCU_STRICT_GRACE_PERIOD, or avoid creating mounts with open_tree(..., OPEN_TREE_CLONE) until a patch is applied

Generated by OpenCVE AI on July 21, 2026 at 14:42 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Debian DSA Debian DSA DSA-6381-1 linux security update
History

Sat, 18 Jul 2026 08:00:00 +0000

Type Values Removed Values Added
Metrics cvssV3_1

{'score': 7.0, 'vector': 'CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H'}

cvssV3_1

{'score': 7.8, 'vector': 'CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H'}


Sat, 04 Jul 2026 12:15:00 +0000


Thu, 02 Jul 2026 11:00:00 +0000

Type Values Removed Values Added
Weaknesses CWE-416
CWE-469

Thu, 02 Jul 2026 01:30:00 +0000

Type Values Removed Values Added
Weaknesses CWE-416
CWE-469

Thu, 02 Jul 2026 00:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-364
References
Metrics threat_severity

None

cvssV3_1

{'score': 7.0, 'vector': 'CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H'}

threat_severity

Moderate


Wed, 01 Jul 2026 23:45:00 +0000

Type Values Removed Values Added
Weaknesses CWE-416

Wed, 01 Jul 2026 17:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-416

Wed, 01 Jul 2026 13:45:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: fhandle: fix UAF due to unlocked ->mnt_ns read in may_decode_fh() may_decode_fh() accesses mount::mnt_ns without holding any locks; that means the mount can concurrently be unmounted, and the mnt_namespace can concurrently be freed after an RCU grace period. This race can happens as follows, assuming that the mount point was created by open_tree(..., OPEN_TREE_CLONE): thread 1 thread 2 RCU __do_sys_open_by_handle_at do_handle_open handle_to_path may_decode_fh is_mounted [mount::mnt_ns access] [mount::mnt_ns access] __do_sys_close fput_close_sync __fput dissolve_on_fput umount_tree class_namespace_excl_destructor namespace_unlock free_mnt_ns mnt_ns_tree_remove call_rcu(mnt_ns_release_rcu) mnt_ns_release_rcu mnt_ns_release kfree [mnt_namespace::user_ns access] **UAF** Fix it by taking rcu_read_lock() around the mount::mnt_ns access, like in __prepend_path(). Additionally, document the semantics of mount::mnt_ns, and use WRITE_ONCE() for writers that can race with lockless readers. This bug is unreachable unless one of the following is set: - CONFIG_PREEMPTION - CONFIG_RCU_STRICT_GRACE_PERIOD because it requires an RCU grace period to happen during a syscall without an explicit preemption. This doesn't seem to have interesting security impact; worst-case, it could leak the result of an integer comparison to userspace (from the level check in cap_capable()), cause an endless loop, or crash the kernel by dereferencing an invalid address.
Title fhandle: fix UAF due to unlocked ->mnt_ns read in may_decode_fh()
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-07-18T07:33:21.019Z

Reserved: 2026-06-09T07:44:35.399Z

Link: CVE-2026-53341

cve-icon Vulnrichment

No data.

cve-icon NVD

No data.

cve-icon Redhat

Severity : Moderate

Publid Date: 2026-07-01T00:00:00Z

Links: CVE-2026-53341 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-07-21T14:45:02Z

Weaknesses
  • CWE-364

    Signal Handler Race Condition