Description
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.
Published: 2026-07-19
Score: 10 Critical
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The vulnerability stems from the Linux kernel’s 9p client implementation, in which the error path of p9_client_walk() unconditionally calls p9_fid_put() on a fid that may alias the caller’s oldfid. If the walk fails after the request has been sent, this drops a reference that the caller still owns. When the reference count reaches zero, the fid can be destroyed and later accessed, resulting in a use‑after‑free or reference‑count underflow. The flaw is classified as CWE‑825 and can lead to kernel memory corruption.

Affected Systems

All Linux kernel distributions that have not applied the patch are vulnerable. The affected code resides in the 9p client subsystem and applies to any kernel version prior to the commit that removes the unconditional p9_fid_put in the error path. In practice, every distribution that ships or has the 9p client enabled without the patch is exposed. No specific version list is provided, but the vulnerability exists in the current Linux kernel source tree until the fix is applied.

Risk and Exploitability

The CVSS score of 10 indicates maximum severity for this flaw. The EPSS score is under 1%, reflecting a very low probability of exploitation in the wild, and the vulnerability is not listed in the CISA KEV catalog. The attack vector is inferred to be local or privileged, as the flaw requires the attacker to execute a p9_client_walk() that fails after the request is sent. An attacker with such access could trigger the use‑after‑free, potentially causing kernel memory corruption or system instability. With the low exploitation likelihood, the immediate risk to typical deployments is limited, but the high impact warrants prompt remediation.

Generated by OpenCVE AI on July 30, 2026 at 22:22 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade the Linux kernel to a version that includes the 9p client walk error‑path fix, ensuring that the unconditional p9_fid_put() call is removed. The patch is available in recent kernel releases; update via distribution channel or apply the upstream commit to the kernel source.
  • If an immediate kernel upgrade is not possible, disable the 9p client feature in the kernel configuration or use kernel module blacklisting so that the vulnerable code path cannot be executed.
  • For environments that must keep the 9p client enabled, monitor kernel logs for p9 ref‑count or use‑after‑free warnings and apply the patch as soon as a related issue is detected.

Generated by OpenCVE AI on July 30, 2026 at 22:22 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Debian DLA Debian DLA DLA-4700-1 linux-6.1 security update
History

Tue, 21 Jul 2026 00:15:00 +0000

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

None

threat_severity

Important


Mon, 20 Jul 2026 14:45:00 +0000

Type Values Removed Values Added
Metrics cvssV3_1

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


Sun, 19 Jul 2026 12:15:00 +0000

Type Values Removed Values Added
Description 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.
Title 9p: avoid putting oldfid in p9_client_walk() error path
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-08-05T12:35:44.108Z

Reserved: 2026-07-19T07:54:57.012Z

Link: CVE-2026-63795

cve-icon Vulnrichment

No data.

cve-icon NVD

No data.

cve-icon Redhat

Severity : Important

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

Links: CVE-2026-63795 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-07-30T22:30:06Z

Weaknesses
  • CWE-825

    Expired Pointer Dereference