CVE-2026-52906: Linux 9P Filesystem Access Mode Flag Corruption
A bug in the Linux kernel's 9P filesystem implementation causes access control flags to accumulate incorrectly when users specify mount options. When administrators mount a 9P share and explicitly request a particular access mode (like 'access=user'), the kernel fails to replace the default access setting. Instead, both the default and requested modes are set simultaneously. This confusion causes the filesystem to reject all legitimate access attempts and fall back to using a default 'nobody' user ID (65534) for file operations. As a result, even the root user cannot perform privileged operations like changing file ownership on the mounted filesystem.
Source data · NVD / CISA · public domain
- CVSS
- 3.1 · 7.7 HIGH · CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
- Weaknesses (CWE)
- —
- Affected products
- 1 configuration(s)
- Published / Modified
- 2026-06-09 / 2026-07-08
NVD description (verbatim)
In the Linux kernel, the following vulnerability has been resolved: 9p: fix access mode flags being ORed instead of replaced Since commit 1f3e4142c0eb ("9p: convert to the new mount API"), v9fs_apply_options() applies parsed mount flags with |= onto flags already set by v9fs_session_init(). For 9P2000.L, session_init sets V9FS_ACCESS_CLIENT as the default, so when the user mounts with "access=user", both bits end up set. Access mode checks compare against exact values, so having both bits set matches neither mode. This causes v9fs_fid_lookup() to fall through to the default switch case, using INVALID_UID (nobody/65534) instead of current_fsuid() for all fid lookups. Root is then unable to chown or perform other privileged operations. Fix by clearing the access mask before applying the user's choice.
2 reference(s) · View on NVD →
SEC.co analysis · AI-assisted, reviewed against source
Technical summary
The vulnerability stems from commit 1f3e4142c0eb, which refactored 9P mount handling to use the new kernel mount API. The flaw is in v9fs_apply_options(), which uses bitwise OR (|=) to merge user-supplied mount flags onto flags already initialized by v9fs_session_init(). For 9P2000.L protocol instances, session_init() sets V9FS_ACCESS_CLIENT as the default access mode. When a user provides an explicit access mode parameter (e.g., 'access=user'), the OR operation causes both the default and user-specified bits to be set. Access mode validation in v9fs_fid_lookup() performs exact value comparisons against defined constants, so the presence of multiple bits causes matches to fail. The function then defaults to using INVALID_UID rather than the caller's actual fsuid, breaking privilege escalation and root-level filesystem operations. The fix clears the access mode mask before applying the user's selection, ensuring only one access mode is active at any time.
Business impact
This vulnerability affects administrators and users relying on 9P network filesystems, commonly used in containerized and virtualized environments (Docker, QEMU, etc.). The inability for root to execute privileged operations on mounted 9P shares—such as changing ownership, modifying permissions, or managing container security contexts—can break automation, deployment pipelines, and security enforcement mechanisms. Organizations using 9P for container storage or virtual machine filesystem sharing may experience deployment failures, inability to enforce security policies, and operational disruption until patched.
Affected systems
The Linux kernel is the sole affected component. All kernel versions from commit 1f3e4142c0eb (merged in kernel v5.10-rc1) through the patch date are potentially vulnerable. The issue manifests only when a user explicitly specifies an access mode mount option on a 9P filesystem; systems using 9P with default settings may not exhibit the problem. Verify your kernel version against the vendor advisory to confirm patch availability.
Exploitability
This vulnerability does not require privilege escalation—it emerges during normal administrative use of 9P filesystems with explicit mount options. Any user with the ability to mount a 9P share can trigger the condition. However, exploitation requires local access and the ability to mount filesystems; remote exploitation is not feasible. The impact is high because it breaks fundamental filesystem privilege model enforcement, though triggering it is straightforward and unambiguous (mount with an access option and attempt a privileged operation).
Remediation
Apply the kernel patch that corrects v9fs_apply_options() to clear the access mode mask before OR-ing in the user's selected mode. Coordinate with your Linux distribution for backported fixes to stable kernel branches you operate. Interim mitigations include avoiding explicit 'access=' mount options when possible or reviewing container and virtualization configurations to ensure 9P mounts are not critical to privilege-dependent operations.
Patch guidance
Identify your current kernel version (uname -r) and cross-reference against your distribution's advisory. Stable and LTS kernel branches will receive backported fixes; check with your vendor (Red Hat, Canonical, SUSE, etc.) for patched kernel packages. Testing should include mounting 9P shares with various access modes ('access=user', 'access=client', etc.) and verifying that root-level operations (chown, chmod, etc.) function correctly post-patch. Validate that non-root users cannot escalate permissions unintentionally as a side effect of the fix.
Detection guidance
Review kernel logs (dmesg) for 9P filesystem mount operations paired with subsequent permission denial errors. Audit container or VM configurations for 9P mount usage; grep for '9p', 'v9fs', or 'protocol=9p' in container runtimes, libvirt XML definitions, or kernel command-line arguments. Monitor for failed system calls (strace or seccomp logs) involving chown, chmod, or other privilege-requiring operations on 9P-mounted paths, especially from uid 0. Correlate mount timestamps with operational failures (e.g., container security policy enforcement, ownership setup) to confirm exposure.
Why prioritize this
This is a HIGH-severity vulnerability (CVSS 7.7) because it directly breaks filesystem privilege enforcement, allowing local attackers to disrupt critical administrative operations. While it requires local mount capability and does not grant unintended privilege, the impact on container orchestration, virtualization, and filesystem security policy is significant. Organizations heavy on containerized or VM-based 9P usage should prioritize patching; others with no 9P deployments can deprioritize. The ease of triggering it (simply mounting with an explicit access option) combined with its severity warrants prompt remediation.
Risk score, explained
The CVSS 3.1 score of 7.7 reflects HIGH severity with High impact on Confidentiality and Integrity, low Attack Vector (Local), low Attack Complexity, and no privileges required. The vulnerability directly compromises the filesystem's ability to enforce access controls and privilege separation, affecting the confidentiality of file operations visible to the wrong user ID and the integrity of filesystem operations that should only be executable by privileged callers. The Local-only attack vector and lack of a network component prevent a score above 8.0, but the fundamental breakdown of privilege isolation justifies the 7.7 rating.
Frequently asked questions
Does this affect 9P filesystems mounted without explicit access mode options?
No. The vulnerability is triggered when an administrator explicitly specifies an access mode parameter (e.g., 'access=user') during mount. Default configurations without this parameter are not affected.
Which environments are most likely to encounter this issue?
Container platforms (Docker with 9P mounts), QEMU/KVM-based virtualization, and other setups relying on 9P for filesystem sharing between host and guest. Check your hypervisor or container runtime configuration for 9P usage.
Can this vulnerability be exploited remotely?
No. The vulnerability requires local filesystem mount capability. Remote attackers cannot exploit it without prior local access to the system performing the mount.
What is the immediate workaround if patching is delayed?
Avoid specifying explicit 'access=' mount options on 9P shares, or defer 9P-based filesystem operations until patching is complete. Review whether 9P shares are genuinely necessary for your infrastructure.
This analysis is based on the published CVE record and kernel commit information available as of the modification date. Verify all patch version numbers, affected kernel branches, and distribution advisories against official vendor sources before applying remediation. This vulnerability requires local system access; it does not enable remote code execution or unauthenticated privilege escalation. Testing patches in non-production environments is strongly recommended, especially in containerized or virtualized infrastructures relying on 9P filesystems. Source: NVD (public-domain), retrieved 2026-07-16. Analysis generated by SEC.co (claude-haiku-4-5).
Affected vendors
Related vulnerabilities
- CVE-2026-10001HIGHChrome Sandbox Escape via PerformanceManager Use-After-Free
- CVE-2026-10002HIGHGoogle Chrome PDFium Use-After-Free Vulnerability (CVSS 8.8)
- CVE-2026-10003HIGHChrome Use-After-Free Code Execution Vulnerability Analysis
- CVE-2026-10006HIGHChrome WebAudio Race Condition Remote Code Execution
- CVE-2026-10007HIGHChrome Use-After-Free in SVG Arbitrary Code Execution (CVSS 8.8)
- CVE-2026-10009HIGHChrome Skia Integer Overflow Sandbox Escape – Patch Guidance
- CVE-2026-10012HIGHChrome Skia Use-After-Free Sandbox Escape (v148.0.7778.216)
- CVE-2026-10013HIGHUse-After-Free in Chrome WebCodecs – Patch Guide & Risk Assessment