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

drm/nouveau: fix reversed error cleanup order in ucopy functions

nouveau_uvmm_vm_bind_ucopy() and nouveau_exec_ucopy() place their error
cleanup labels in allocation order rather than reverse allocation order.
On a u_memcpya() failure for in_sync.s, the goto to err_free_ops (or
err_free_pushs) frees the first allocation and then falls through to
err_free_ins, which calls u_free() on args->in_sync.s.

Since args->in_sync.s still holds the ERR_PTR returned by the failed
u_memcpya(), and ERR_PTR values are not caught by ZERO_OR_NULL_PTR(),
kvfree() proceeds to dereference it, which can result in a kernel oops.
A failure for out_sync.s instead jumps to err_free_ins and skips freeing
the first allocation, leading to a memory leak.

Fix by swapping the cleanup label order so resources are freed in the
correct reverse allocation sequence.
Published: 2026-08-10
Score: n/a
EPSS: n/a
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

In the Linux kernel’s DRM Nouveau driver, the functions nouveau_uvmm_vm_bind_ucopy() and nouveau_exec_ucopy() incorrectly order cleanup labels during error handling. When a u_memcpya() call fails for the in_sync.s buffer, the cleanup frees a memory allocation prematurely and then attempts to free a pointer that contains an ERR_PTR value. The kernel’s kvfree dereferences this erroneous pointer, leading to a kernel oops and system crash. A failure on the out_sync.s buffer similarly results in a memory leak due to missing cleanup. This bug allows a crash that can affect the entire system, representing a denial‑of‑service flaw.

Affected Systems

The vulnerability exists in the Linux kernel’s DRM Nouveau subsystem. The affected vendor is Linux (kernel) across all current releases that contain the buggy code. No specific version range is provided in the data, so all kernel releases prior to the patch are potentially impacted.

Risk and Exploitability

The risk manifested is a kernel oops that can shut down the system, constituting a denial‑of‑service condition. Because the flaw is within the kernel module, exploitation would require an attacker to trigger a failure in the ucopy operation, typically through graphics subsystem activity. The likely attack vector is through a graphics operation that exercises the Nouveau driver, which would cause a u_memcpya failure. Based on the description, it is inferred that an attacker would need to trigger an error in the ucopy operation, which likely involves performing graphics operations that exercise the Nouveau driver. The EPSS score is not available, and the vulnerability is not listed in the CISA KEV catalog, indicating at present no known widespread exploitation. Nonetheless, the potential for a crash warrants immediate action once a patched kernel is available.

Generated by OpenCVE AI on August 10, 2026 at 18:07 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade the Linux kernel to a release that includes the Nouveau driver patch (commits 2473ac3, 4e109fa, etc.).
  • If a kernel upgrade cannot be applied immediately, blacklist the Nouveau driver (e.g., add "blacklist nouveau" to modprobe.d) and switch to a safe graphics driver, such as the proprietary NVIDIA driver or a generic DRM driver.
  • Apply any vendor‑provided kernel updates or security advisories promptly, and consider disabling any unused graphics features that may trigger u_memcpya failures.

Generated by OpenCVE AI on August 10, 2026 at 18:07 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Mon, 10 Aug 2026 18:30:00 +0000

Type Values Removed Values Added
Weaknesses CWE-416
CWE-772

Mon, 10 Aug 2026 12:30:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: drm/nouveau: fix reversed error cleanup order in ucopy functions nouveau_uvmm_vm_bind_ucopy() and nouveau_exec_ucopy() place their error cleanup labels in allocation order rather than reverse allocation order. On a u_memcpya() failure for in_sync.s, the goto to err_free_ops (or err_free_pushs) frees the first allocation and then falls through to err_free_ins, which calls u_free() on args->in_sync.s. Since args->in_sync.s still holds the ERR_PTR returned by the failed u_memcpya(), and ERR_PTR values are not caught by ZERO_OR_NULL_PTR(), kvfree() proceeds to dereference it, which can result in a kernel oops. A failure for out_sync.s instead jumps to err_free_ins and skips freeing the first allocation, leading to a memory leak. Fix by swapping the cleanup label order so resources are freed in the correct reverse allocation sequence.
Title drm/nouveau: fix reversed error cleanup order in ucopy functions
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-10T12:01:46.534Z

Reserved: 2026-07-30T09:28:09.378Z

Link: CVE-2026-68271

cve-icon Vulnrichment

No data.

cve-icon NVD

No data.

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-10T22:00:05Z

Weaknesses
  • CWE-416

    Use After Free

  • CWE-772

    Missing Release of Resource after Effective Lifetime