Linux kernel automount accepts mounts outside any namespace
Key facts
- Attack vector
- —
- Privileges required
- —
- User interaction
- —
- Attack complexity
- —
- Impact type
- —
- Confidentiality · integrity · availability
- —
- Fix status
- Partial Red Hat: 6 without a fix
No CVSS vector from any source. Fix status from CNA and Red Hat.
Summary
The Linux kernel from 5.8 onward, including the mainline range before its fixed commits, accepts an automount below a mount that is in no mount namespace. The mount check treats an internal mount marker as valid, so the kernel dereferences an error pointer when it attaches the mount. A user in userspace can reach this through fanotify events on an overlay filesystem, causing a kernel crash and blocking all later mount operations.
Written with Claude Haiku 5.5 from the sources below · 2026-11-06
Description from the CNA
In the Linux kernel, the following vulnerability has been resolved: namespace: refuse an automount below a mount that is in no namespace It's possible to add autmounts even when the parent mount isn't in the mount namespace of the caller. The only requirement we have is that the parent mount namespace must not be NULL, i.e., unmounted. Problem is that clone_private_mount() has MNT_NS_INTERNAL which makes that trivially true. So that passes the test and attach_recursive_mnt() accepts that as a mount point and funny enough, count_mounts() dereferences MNT_NS_INTERNAL. The problem is it is an error pointer... So we can reach this in userspace via fanotify. A filesystem mark on the lower filesystem of an overlay reports paths on the layer clone and reading the event hands out a descriptor on it. For example with debugfs as the lower layer it goes kaboom: openat(evfd, "tracing", O_DIRECTORY) Oops: general protection fault KASAN: null-ptr-deref in range [0x1d0-0x1d7] RIP: 0010:count_mounts+0x35/0x200 attach_recursive_mnt finish_automount And since that sleeping beauty happens under namespace_sem held for writing every mount operation on the system blocks from then on. Congrats. Use is_mounted() instead which rejects unmounted and internal mounts alike. The open fails with EINVAL just as it did before clone_private_mount() used MNT_NS_INTERNAL.
Why it matters now
SSVC decision points
Not available: CISA has not published SSVC decision points for this record.
Affected products
Remediation
Stable branches are fixed in 5.10.273, 5.15.224, 6.1.191, 6.6.160, 6.12.113, 6.18.57, 7.2.11 and 7.3, and mainline is fixed in later commits. Red Hat lists Red Hat Enterprise Linux 6 with no fix planned and Red Hat Enterprise Linux 8, 9, 10 and OpenShift Container Platform 4 and 5 with no fix available.
Written with Claude Haiku 5.5 from the sources below · 2026-11-06
- Fix · CNA Linux (Linux) Fixed in 5.10.273, 5.15.224, 6.1.191, 6.6.160, 6.12.113, 6.18.57, 7.2.11, 7.3
Vendor assessments
Red Hat
Red Hat rating: Moderate. Red Hat's page for this CVE →
| Product | Status | Plan or fix |
|---|---|---|
| Red Hat Enterprise Linux 10 | Affected | No fix yet: Fix deferred |
| Red Hat Enterprise Linux 6 | Affected | No fix planned: Out of support scope |
| Red Hat Enterprise Linux 8 | Affected | No fix yet: Fix deferred |
| Red Hat Enterprise Linux 9 | Affected | No fix yet: Fix deferred |
| Red Hat OpenShift Container Platform 4 | Affected | No fix yet: Fix deferred |
| Red Hat OpenShift Container Platform 5 | Affected | No fix yet: Fix deferred |
Not affected: 1 product
- Red Hat Enterprise Linux 7
Timeline
- 2026-10-23 Threatist record created from CVE-2026-98979
- 2026-10-23 Alias added: GHSA-xhgj-mp6g-fw2x
- 2026-10-29 Affected versions changed · Red Hat
- 2026-10-29 CVSS score added · Red Hat
- 2026-10-30 Fix available: Linux/[email protected], Linux/[email protected], Linux/[email protected] +3 · CNA
- 2026-10-30 3 new references · CNA
- 2026-11-06 Affected versions changed · Red Hat
References
Other 8
- https://git.kernel.org/stable/c/d8c7f74adf5de78035d41aa33c8f71e12b3ca430
- https://git.kernel.org/stable/c/c88546071d30417ab9e55821c83f4dc7756cff6f
- https://git.kernel.org/stable/c/c98e74d73a3356ab00fc6bb9dec3c77da1ec1ce4
- https://git.kernel.org/stable/c/95fb7c259b86f5521f04973040ad492f2bef6f82
- https://git.kernel.org/stable/c/35f2013f83ef16f9f0331c4c3a8e8d161580d574
- https://git.kernel.org/stable/c/494c57572d2d5bc2839553ed41aabe92ed0f587c
- https://git.kernel.org/stable/c/776e20e4fdc23c23687b511ffdc80047878049d3
- https://git.kernel.org/stable/c/ba985ce08471c555af2a2fbe217c1bc2e72a6d8c
More Linux vulnerabilities
- TI-2025-26358 tls: fix handling of zero-length records on the rx_list KEVCVSS 3.1CRITICAL 9.8
- TI-2026-38352 netfilter: bridge: make ebt_snat ARP rewrite writable KEVCVSS 3.1HIGH 8.8
- TI-2021-02452 Incorrect authorization in Ubuntu linux kernel KEVCVSS 3.1HIGH 8.8
- TI-2013-05264 The (1) get_user and (2) put_user API functions in the Linux kernel before 3.5.5 on the… KEVCVSS 3.1HIGH 8.8
- TI-2022-00125 Integer overflow in kernel KEVCVSS 3.1HIGH 8.4
- TI-2013-01864 The perf_swevent_init function in kernel/events/core.c in the Linux kernel before 3.8.9… KEVCVSS 3.1HIGH 8.4
Sources
- CVE-2026-98979 · CVE Program
- CVE-2026-98979 · NVD
- FIRST EPSS
- GHSA-xhgj-mp6g-fw2x · GitHub Advisory Database · CC BY 4.0
- CVE-2026-98979 · Red Hat security data · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences