Skip to content
Heist/ feed
Back to feed
HighFix available

9p: fix access mode flags being ORed instead of replaced

Type: advisorySources: OSV

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.

Products
Kernel
Affected versions
Not specified
Fixed versions
7.0.4
CVEs
CVE-2026-52906
Confirmed fixed CVEs
Not specified
Updated in this feed
7 Nov 2026, 18:25 UTC · Revision 1

Source evidence

9p: fix access mode flags being ORed instead of replaced

core-osv · Original source

Published 9 Jun 2026, 12:36 UTC

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.

osv:CVE-2026-52906

Kernel

Fixed versions: 7.0.4

Complete source record
{
  "id": "2454bedac7523e1430138e94cc3eacf4b07abce4283d81b77399e31742f94fd9",
  "url": "https://osv.dev/vulnerability/CVE-2026-52906",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "9p: fix access mode flags being ORed instead of replaced",
    "summary": "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.",
    "evidence": "osv:CVE-2026-52906",
    "products": [
      {
        "name": {
          "value": "Kernel",
          "evidence": "/affected/1/package/name"
        },
        "prerequisites": [],
        "fixed_versions": [
          {
            "value": "7.0.4",
            "evidence": "/affected/1/ranges"
          }
        ],
        "affected_versions": []
      }
    ],
    "severity": "high",
    "structured": {
      "id": "CVE-2026-52906",
      "aliases": [
        "CVE-2026-52906"
      ],
      "metrics": [
        {
          "type": "CVSS_V3",
          "score": "CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
              "type": "GIT",
              "events": [
                {
                  "introduced": "1f3e4142c0eb178089ea0cbc97506a061470ad27"
                },
                {
                  "fixed": "b8f037e87a083291190204b959cda417aaf01058"
                },
                {
                  "fixed": "da2346a48a5a1fed86c3fe3d73c0b60e7b3027c9"
                }
              ]
            }
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-52906.json"
          }
        },
        {
          "ranges": [
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "6.19.0"
                },
                {
                  "fixed": "7.0.4"
                }
              ]
            }
          ],
          "package": {
            "name": "Kernel",
            "ecosystem": "Linux"
          },
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-52906.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:51.546428974Z",
      "provider": "osv",
      "references": [
        "https://git.kernel.org/stable/c/b8f037e87a083291190204b959cda417aaf01058",
        "https://git.kernel.org/stable/c/da2346a48a5a1fed86c3fe3d73c0b60e7b3027c9",
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/52xxx/CVE-2026-52906.json",
        "https://nvd.nist.gov/vuln/detail/CVE-2026-52906",
        "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git"
      ],
      "provider_metadata": {
        "cna_assigner": "Linux",
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/52xxx/CVE-2026-52906.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2026-52906",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 520087,
  "published_at": "2026-06-09T12:36:03.521+00:00"
}