Skip to main content

Linux Kernel CVE-2026-64264

| EUVDEUVD-2026-48976 MEDIUM
2026-07-25 Linux GHSA-2mhj-4m6m-6rj5
5.5
CVSS 3.1 · NVD
Share

Severity by source

NVD PRIMARY
5.5 MEDIUM
AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
vuln.today AI
5.5 MEDIUM

Local access and low-privilege user required; no scope change; impact limited to availability via kernel crash with no confirmed confidentiality exposure.

3.1 AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
4.0 AV:L/AC:L/AT:N/PR:L/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
SUSE
MEDIUM
qualitative

Primary rating from NVD.

CVSS VectorNVD

Attack Vector
Local
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
None
Availability
High

Lifecycle Timeline

5
Analysis Generated
Aug 12, 2026 - 16:20 vuln.today
CVSS changed
Aug 12, 2026 - 16:07 NVD
5.5 (MEDIUM)
Patch available
Jul 25, 2026 - 11:18 EUVD
CVE Published
Jul 25, 2026 - 08:49 nvd
MEDIUM 5.5
CVE Published
Jul 25, 2026 - 08:49 cve.org
UNKNOWN (no severity yet)

DescriptionNVD

In the Linux kernel, the following vulnerability has been resolved:

fuse-uring: fix EFAULT clobber in fuse_uring_commit

copy_from_user() returns the number of bytes not copied as an unsigned residual on failure (1..sizeof(struct fuse_out_header)). fuse_uring_commit stores that residual in ssize_t err, sets req->out.h.error to -EFAULT, then jumps to out: with err still holding the positive residual.

err = copy_from_user(&req->out.h, &ent->headers->in_out, sizeof(req->out.h)); if (err) { req->out.h.error = -EFAULT; goto out; /* err is the positive residual */ } ... out: fuse_uring_req_end(ent, req, err);

fuse_uring_req_end() then runs

if (error) req->out.h.error = error;

which overwrites the just-assigned -EFAULT with the positive residual. FUSE callers such as fuse_simple_request() test err < 0 to detect failure, so the positive value is interpreted as success and the caller proceeds with an uninitialised or partial req->out.args.

Fix by assigning err = -EFAULT in the failure branch before jumping to out, so fuse_uring_req_end() receives a negative errno and sets req->out.h.error to -EFAULT.

AnalysisAI

Error-code mishandling in the Linux kernel fuse-uring subsystem causes a failed copy_from_user() in fuse_uring_commit to be silently treated as success, leaving callers processing uninitialized or partial output arguments. Local users with low-privilege access on kernels from 6.14 through pre-patch versions can trigger a kernel panic or crash, yielding a local denial of service. No public exploit has been identified and the EPSS score of 0.21% (11th percentile) indicates no meaningful active exploitation activity at time of analysis.

Technical ContextAI

The fuse-uring subsystem integrates FUSE (Filesystem in Userspace) with the Linux io_uring asynchronous I/O interface, first introduced in Linux 6.14. The vulnerability lies in fuse_uring_commit(), which calls copy_from_user() to copy a fuse_out_header struct from user space. Critically, copy_from_user() returns the number of bytes not copied (a positive unsigned residual) rather than a negative errno on partial failure. The code correctly sets req->out.h.error = -EFAULT but stores the positive residual in a ssize_t err variable and jumps to the out: label without correcting it. The downstream function fuse_uring_req_end() then evaluates if (error) and overwrites the correctly-set -EFAULT with this positive residual. FUSE request callers such as fuse_simple_request() test err < 0 to detect failure; a positive value passes this check as apparent success, and the caller proceeds with uninitialized or truncated req->out.args data. The root cause is a signed/unsigned confusion in error propagation - a category of subtle kernel error-handling bugs without a formal CWE assignment in the available data. The CPE string cpe:2.3:a:linux:linux:*:*:*:*:*:*:*:* covers the affected product family.

RemediationAI

The primary remediation is to upgrade to a patched kernel version: Linux 6.18.39 for the 6.x stable series, Linux 7.1.4 for the 7.1 stable series, or Linux 7.2-rc1 or later for mainline. Stable-series patches are available directly from the kernel stable tree at https://git.kernel.org/stable/c/0483fffdeeb363f320e6bf5fc0f0306007507306 (6.x series), https://git.kernel.org/stable/c/3a0a8bc51a13951c5141262bf770eeea3e0b6228 (7.1 series), and https://git.kernel.org/stable/c/fe604c08d874648a69187f6380e5c7858627dc04 (mainline). Distribution vendors (RHEL, Debian, Ubuntu, SUSE) should be tracked for backported packages. As a compensating control where patching is not immediately possible, administrators can disable io_uring system-wide by setting kernel.io_uring_disabled=1 via sysctl, which eliminates the reachable code path entirely; note that this will break any application relying on io_uring for asynchronous I/O, potentially impacting database workloads and high-performance networking stacks. Alternatively, restricting io_uring to privileged users via cgroup or seccomp policies reduces the unprivileged attack surface without a full disable.

Vendor StatusVendor

SUSE

Severity: Moderate
Product Status
openSUSE Tumbleweed Fixed
SUSE Linux Enterprise Desktop 15 SP7 Not-Affected
SUSE Linux Enterprise Desktop 15 SP7 Not-Affected
SUSE Linux Enterprise High Availability Extension 15 SP7 Not-Affected
SUSE Linux Enterprise High Availability Extension 15 SP7 Not-Affected

Share

CVE-2026-64264 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy