CVE-2026-63795 (GCVE-0-2026-63795)

Vulnerability from cvelistv5 – Published: 2026-07-19 12:02 – Updated: 2026-08-05 12:35
VLAI
Title
9p: avoid putting oldfid in p9_client_walk() error path
Summary
In the Linux kernel, the following vulnerability has been resolved: 9p: avoid putting oldfid in p9_client_walk() error path When p9_client_walk() is called with clone set to false, fid aliases oldfid. If the walk subsequently fails after the request has been sent, the error path jumps to clunk_fid, which currently calls p9_fid_put(fid) unconditionally. This drops a reference to oldfid even though ownership of oldfid remains with the caller. If this is the last reference, oldfid can be clunked and destroyed while the caller still expects it to be valid. A later use or put of oldfid can then trigger a use-after-free or refcount underflow. Fix this by only putting fid in the clunk_fid error path when it does not alias oldfid, matching the existing guard in the error path below. This can be triggered when a multi-component walk is split into multiple p9_client_walk() calls and a later non-cloning walk fails. A reproducer and refcount warning logs are available on request.
Assigner
Impacted products
Vendor Product Version
Linux Linux Affected: b48dbb998d70b7f48c2ec0a15c3cf47136808e4e , < 99c379ca1e221c3d75c7c804ebbf4e5ee37a3070 (git)
Affected: b48dbb998d70b7f48c2ec0a15c3cf47136808e4e , < b84f46179c806450b89821221ea5bd9a1698aba8 (git)
Affected: b48dbb998d70b7f48c2ec0a15c3cf47136808e4e , < a61bdcba4f64c2f90d01461913f429ab151f1ca6 (git)
Affected: b48dbb998d70b7f48c2ec0a15c3cf47136808e4e , < 6dbe9443d9f5f7fb6d319a7b77108853ae6c6bea (git)
Affected: b48dbb998d70b7f48c2ec0a15c3cf47136808e4e , < a7656d368265d085ac9bb85ab31b0cdb72ad8c38 (git)
Affected: b48dbb998d70b7f48c2ec0a15c3cf47136808e4e , < 1a3860d46e3eb47dbd60339783cdad7904486b9f (git)
Create a notification for this product.
Linux Linux Affected: 6.0
Unaffected: 0 , < 6.0 (semver)
Unaffected: 6.1.177 , ≤ 6.1.* (semver)
Unaffected: 6.6.144 , ≤ 6.6.* (semver)
Unaffected: 6.12.95 , ≤ 6.12.* (semver)
Unaffected: 6.18.38 , ≤ 6.18.* (semver)
Unaffected: 7.1.3 , ≤ 7.1.* (semver)
Unaffected: 7.2-rc1 , ≤ * (original_commit_for_fix)
Create a notification for this product.
Show details on NVD website

{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "net/9p/client.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "99c379ca1e221c3d75c7c804ebbf4e5ee37a3070",
              "status": "affected",
              "version": "b48dbb998d70b7f48c2ec0a15c3cf47136808e4e",
              "versionType": "git"
            },
            {
              "lessThan": "b84f46179c806450b89821221ea5bd9a1698aba8",
              "status": "affected",
              "version": "b48dbb998d70b7f48c2ec0a15c3cf47136808e4e",
              "versionType": "git"
            },
            {
              "lessThan": "a61bdcba4f64c2f90d01461913f429ab151f1ca6",
              "status": "affected",
              "version": "b48dbb998d70b7f48c2ec0a15c3cf47136808e4e",
              "versionType": "git"
            },
            {
              "lessThan": "6dbe9443d9f5f7fb6d319a7b77108853ae6c6bea",
              "status": "affected",
              "version": "b48dbb998d70b7f48c2ec0a15c3cf47136808e4e",
              "versionType": "git"
            },
            {
              "lessThan": "a7656d368265d085ac9bb85ab31b0cdb72ad8c38",
              "status": "affected",
              "version": "b48dbb998d70b7f48c2ec0a15c3cf47136808e4e",
              "versionType": "git"
            },
            {
              "lessThan": "1a3860d46e3eb47dbd60339783cdad7904486b9f",
              "status": "affected",
              "version": "b48dbb998d70b7f48c2ec0a15c3cf47136808e4e",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "net/9p/client.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "6.0"
            },
            {
              "lessThan": "6.0",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.1.*",
              "status": "unaffected",
              "version": "6.1.177",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.6.*",
              "status": "unaffected",
              "version": "6.6.144",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.12.*",
              "status": "unaffected",
              "version": "6.12.95",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.18.*",
              "status": "unaffected",
              "version": "6.18.38",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "7.1.*",
              "status": "unaffected",
              "version": "7.1.3",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "7.2-rc1",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.1.177",
                  "versionStartIncluding": "6.0",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.6.144",
                  "versionStartIncluding": "6.0",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.12.95",
                  "versionStartIncluding": "6.0",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.18.38",
                  "versionStartIncluding": "6.0",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.1.3",
                  "versionStartIncluding": "6.0",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.2-rc1",
                  "versionStartIncluding": "6.0",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\n9p: avoid putting oldfid in p9_client_walk() error path\n\nWhen p9_client_walk() is called with clone set to false, fid aliases\noldfid. If the walk subsequently fails after the request has been sent,\nthe error path jumps to clunk_fid, which currently calls p9_fid_put(fid)\nunconditionally.\n\nThis drops a reference to oldfid even though ownership of oldfid remains\nwith the caller. If this is the last reference, oldfid can be clunked and\ndestroyed while the caller still expects it to be valid. A later use or\nput of oldfid can then trigger a use-after-free or refcount underflow.\n\nFix this by only putting fid in the clunk_fid error path when it does not\nalias oldfid, matching the existing guard in the error path below.\n\nThis can be triggered when a multi-component walk is split into multiple\np9_client_walk() calls and a later non-cloning walk fails. A reproducer\nand refcount warning logs are available on request."
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "baseScore": 10,
            "baseSeverity": "CRITICAL",
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H",
            "version": "3.1"
          },
          "scenarios": [
            {
              "lang": "en",
              "value": "AV:N - The kernel 9p client processes TWALK responses from a remote 9p server over TCP/RDMA transports, and a malicious or compromised server can return a partial RWALK (nwqids \u003c nwname) or malformed reply to hit the clunk_fid error path during a multi-segment walk.\nAC:L - An attacker who controls the 9p server can reliably craft deep directory layouts and RWALK failure responses; the reproducer path (split multi-component walk with a failing non-cloning segment) does not depend on race timing or memory layout.\nPR:N - Exploitation only requires access to an already-mounted 9p filesystem and normal file operations (lookup/stat/open) that trigger v9fs_fid_lookup(); no elevated kernel capabilities or real-root privileges are needed beyond filesystem access permissions.\nUI:N - No interactive victim action is required beyond routine file access on a pre-mounted 9p filesystem (common with virtio-9p in QEMU/KVM/Firecracker VMs where the mount is established at boot).\nS:C - A malicious remote 9p server operates outside the kernel client\u0027s security boundary, and successful exploitation corrupts kernel heap memory (struct p9_fid use-after-free), impacting the kernel beyond the 9p client\u0027s own scope.\nC:H - Premature p9_fid_put() can destroy oldfid while callers still hold dangling references, producing a heap use-after-free on struct p9_fid that is exploitable for arbitrary kernel memory disclosure.\nI:H - The use-after-free and refcount underflow on struct p9_fid provide heap corruption primitives that can be leveraged for arbitrary kernel writes and local privilege escalation.\nA:H - The bug can cause immediate kernel oops/panic from use-after-free or refcount underflow when the prematurely freed fid is subsequently accessed or put again."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-05T12:35:44.108Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/99c379ca1e221c3d75c7c804ebbf4e5ee37a3070"
        },
        {
          "url": "https://git.kernel.org/stable/c/b84f46179c806450b89821221ea5bd9a1698aba8"
        },
        {
          "url": "https://git.kernel.org/stable/c/a61bdcba4f64c2f90d01461913f429ab151f1ca6"
        },
        {
          "url": "https://git.kernel.org/stable/c/6dbe9443d9f5f7fb6d319a7b77108853ae6c6bea"
        },
        {
          "url": "https://git.kernel.org/stable/c/a7656d368265d085ac9bb85ab31b0cdb72ad8c38"
        },
        {
          "url": "https://git.kernel.org/stable/c/1a3860d46e3eb47dbd60339783cdad7904486b9f"
        }
      ],
      "title": "9p: avoid putting oldfid in p9_client_walk() error path",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2026-63795",
    "datePublished": "2026-07-19T12:02:04.069Z",
    "dateReserved": "2026-07-19T07:54:57.012Z",
    "dateUpdated": "2026-08-05T12:35:44.108Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2026-63795",
      "date": "2026-08-11",
      "epss": "0.00477",
      "percentile": "0.38855"
    },
    "microsoft_vex": {
      "current_release_date": "2026-07-20T14:46:53.000Z",
      "cve": "CVE-2026-63795",
      "id": "msrc_CVE-2026-63795",
      "initial_release_date": "2026-07-20T01:08:03.000Z",
      "product_status:known_affected": "1",
      "source": "Microsoft CSAF VEX",
      "status": "final",
      "title": "9p: avoid putting oldfid in p9_client_walk() error path",
      "url": "https://msrc.microsoft.com/csaf/vex/2026/msrc_cve-2026-63795.json",
      "version": "2"
    },
    "nvd": "{\"cve\":{\"id\":\"CVE-2026-63795\",\"sourceIdentifier\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"published\":\"2026-07-19T12:16:51.910\",\"lastModified\":\"2026-07-30T17:39:34.503\",\"vulnStatus\":\"Analyzed\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"In the Linux kernel, the following vulnerability has been resolved:\\n\\n9p: avoid putting oldfid in p9_client_walk() error path\\n\\nWhen p9_client_walk() is called with clone set to false, fid aliases\\noldfid. If the walk subsequently fails after the request has been sent,\\nthe error path jumps to clunk_fid, which currently calls p9_fid_put(fid)\\nunconditionally.\\n\\nThis drops a reference to oldfid even though ownership of oldfid remains\\nwith the caller. If this is the last reference, oldfid can be clunked and\\ndestroyed while the caller still expects it to be valid. A later use or\\nput of oldfid can then trigger a use-after-free or refcount underflow.\\n\\nFix this by only putting fid in the clunk_fid error path when it does not\\nalias oldfid, matching the existing guard in the error path below.\\n\\nThis can be triggered when a multi-component walk is split into multiple\\np9_client_walk() calls and a later non-cloning walk fails. A reproducer\\nand refcount warning logs are available on request.\"}],\"affected\":[{\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"affectedData\":[{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"unaffected\",\"programFiles\":[\"net/9p/client.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"b48dbb998d70b7f48c2ec0a15c3cf47136808e4e\",\"lessThan\":\"99c379ca1e221c3d75c7c804ebbf4e5ee37a3070\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"b48dbb998d70b7f48c2ec0a15c3cf47136808e4e\",\"lessThan\":\"b84f46179c806450b89821221ea5bd9a1698aba8\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"b48dbb998d70b7f48c2ec0a15c3cf47136808e4e\",\"lessThan\":\"a61bdcba4f64c2f90d01461913f429ab151f1ca6\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"b48dbb998d70b7f48c2ec0a15c3cf47136808e4e\",\"lessThan\":\"6dbe9443d9f5f7fb6d319a7b77108853ae6c6bea\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"b48dbb998d70b7f48c2ec0a15c3cf47136808e4e\",\"lessThan\":\"a7656d368265d085ac9bb85ab31b0cdb72ad8c38\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"b48dbb998d70b7f48c2ec0a15c3cf47136808e4e\",\"lessThan\":\"1a3860d46e3eb47dbd60339783cdad7904486b9f\",\"versionType\":\"git\",\"status\":\"affected\"}]},{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"affected\",\"programFiles\":[\"net/9p/client.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"6.0\",\"status\":\"affected\"},{\"version\":\"0\",\"lessThan\":\"6.0\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.1.177\",\"lessThanOrEqual\":\"6.1.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.6.144\",\"lessThanOrEqual\":\"6.6.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.12.95\",\"lessThanOrEqual\":\"6.12.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.18.38\",\"lessThanOrEqual\":\"6.18.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"7.1.3\",\"lessThanOrEqual\":\"7.1.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"7.2-rc1\",\"lessThanOrEqual\":\"*\",\"versionType\":\"original_commit_for_fix\",\"status\":\"unaffected\"}]}]}],\"metrics\":{\"cvssMetricV31\":[{\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"type\":\"Secondary\",\"cvssData\":{\"version\":\"3.1\",\"vectorString\":\"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H\",\"baseScore\":10.0,\"baseSeverity\":\"CRITICAL\",\"attackVector\":\"NETWORK\",\"attackComplexity\":\"LOW\",\"privilegesRequired\":\"NONE\",\"userInteraction\":\"NONE\",\"scope\":\"CHANGED\",\"confidentialityImpact\":\"HIGH\",\"integrityImpact\":\"HIGH\",\"availabilityImpact\":\"HIGH\"},\"exploitabilityScore\":3.9,\"impactScore\":6.0}]},\"weaknesses\":[{\"source\":\"nvd@nist.gov\",\"type\":\"Primary\",\"description\":[{\"lang\":\"en\",\"value\":\"CWE-416\"}]}],\"configurations\":[{\"nodes\":[{\"operator\":\"OR\",\"negate\":false,\"cpeMatch\":[{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"6.0\",\"versionEndExcluding\":\"6.1.177\",\"matchCriteriaId\":\"E1C3142A-8469-4087-A10A-726FF6961047\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"6.2\",\"versionEndExcluding\":\"6.6.144\",\"matchCriteriaId\":\"C8AD3BC8-C843-423C-B9DB-CB52F67F578E\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"6.7\",\"versionEndExcluding\":\"6.12.95\",\"matchCriteriaId\":\"4E206B86-E0E3-4394-A93F-39F2D50A8AA8\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"6.13\",\"versionEndExcluding\":\"6.18.38\",\"matchCriteriaId\":\"FA591B28-5D62-449E-BDBE-3C9391BF070A\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"6.19\",\"versionEndExcluding\":\"7.1.3\",\"matchCriteriaId\":\"9526B150-E2B3-4C6F-8AE5-1AF92B75AD9E\"}]}]}],\"references\":[{\"url\":\"https://git.kernel.org/stable/c/1a3860d46e3eb47dbd60339783cdad7904486b9f\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/6dbe9443d9f5f7fb6d319a7b77108853ae6c6bea\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/99c379ca1e221c3d75c7c804ebbf4e5ee37a3070\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/a61bdcba4f64c2f90d01461913f429ab151f1ca6\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/a7656d368265d085ac9bb85ab31b0cdb72ad8c38\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/b84f46179c806450b89821221ea5bd9a1698aba8\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]}]}}",
    "redhat_vex": {
      "aggregate_severity": "Important",
      "current_release_date": "2026-07-20T15:22:17+00:00",
      "cve": "CVE-2026-63795",
      "id": "CVE-2026-63795",
      "initial_release_date": "2026-07-19T00:00:00+00:00",
      "product_status:known_not_affected": "260",
      "product_status:under_investigation": "14",
      "source": "Red Hat CSAF VEX",
      "status": "final",
      "title": "kernel: 9p: avoid putting oldfid in p9_client_walk() error path",
      "url": "https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-63795.json",
      "version": "3"
    },
    "suse_vex": {
      "aggregate_severity": "important",
      "current_release_date": "2026-08-10T16:26:31Z",
      "cve": "CVE-2026-63795",
      "id": "CVE-2026-63795",
      "initial_release_date": "2026-07-19T17:35:11Z",
      "product_status:first_fixed": "98",
      "product_status:known_affected": "117",
      "product_status:known_not_affected": "167",
      "product_status:recommended": "4",
      "source": "SUSE CSAF VEX",
      "status": "interim",
      "title": "SUSE CVE CVE-2026-63795",
      "url": "https://ftp.suse.com/pub/projects/security/csaf-vex/cve-2026-63795.json",
      "version": "6"
    }
  }
}



Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Forecast uses a logistic model when the trend is rising, or an exponential decay model when the trend is falling. Fitted via linearized least squares.

Sightings

Author Source Type Date Other

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or observed by the user.
  • Confirmed: The vulnerability has been validated from an analyst's perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
  • Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
  • Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
  • Not confirmed: The user expressed doubt about the validity of the vulnerability.
  • Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.

Loading…

Detection rules are retrieved from Rulezet.

Loading…

Loading…

Loading…