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

x86-64: rename misleadingly named '__copy_user_nocache()' function

This function was a masterclass in bad naming, for various historical
reasons.

It claimed to be a non-cached user copy. It is literally _neither_ of
those things. It's a specialty memory copy routine that uses
non-temporal stores for the destination (but not the source), and that
does exception handling for both source and destination accesses.

Also note that while it works for unaligned targets, any unaligned parts
(whether at beginning or end) will not use non-temporal stores, since
only words and quadwords can be non-temporal on x86.

The exception handling means that it _can_ be used for user space
accesses, but not on its own - it needs all the normal "start user space
access" logic around it.

But typically the user space access would be the source, not the
non-temporal destination. That was the original intention of this,
where the destination was some fragile persistent memory target that
needed non-temporal stores in order to catch machine check exceptions
synchronously and deal with them gracefully.

Thus that non-descriptive name: one use case was to copy from user space
into a non-cached kernel buffer. However, the existing users are a mix
of that intended use-case, and a couple of random drivers that just did
this as a performance tweak.

Some of those random drivers then actively misused the user copying
version (with STAC/CLAC and all) to do kernel copies without ever even
caring about the exception handling, _just_ for the non-temporal
destination.

Rename it as a first small step to actually make it halfway sane, and
change the prototype to be more normal: it doesn't take a user pointer
unless the caller has done the proper conversion, and the argument size
is the full size_t (it still won't actually copy more than 4GB in one
go, but there's also no reason to silently truncate the size argument in
the caller).

Finally, use this now sanely named function in the NTB code, which
mis-used a user copy version (with STAC/CLAC and all) of this interface
despite it not actually being a user copy at all.
Published: 2026-05-05
Score: n/a
EPSS: n/a
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The Linux kernel includes a function that was deliberately mislabeled as a non‑cached user copy routine. In reality it performs a non‑temporal store into the destination while handling exceptions for both source and destination accesses. Because the function does not enforce proper user‑space access control and may be called by drivers without preceding the necessary "start user space" checks, it can be misused to perform kernel‑space memory copies originating from untrusted user data. This misuse removes critical bounds checks and exception handling, creating a path for arbitrary kernel memory writes or silent crashes when the source or destination triggers a page fault or machine‑check exception. The result is potential kernel corruption, panic, or denial of service. Affected systems All Linux kernel builds that contain the __copy_user_nocache function are potentially impacted. The vulnerability exists before any official patch is applied, and the specific kernel versions are not listed in the data. Linux kernel users on any distribution should treat all kernels that have not applied the rename and protection changes as vulnerable. Risk and exploitability The issue does not appear to be remotely exploitable from user space alone; it requires a driver or privileged process that calls the misnamed routine. The CVSS score is not provided, and EPSS data is unavailable, indicating limited evidence of active exploitation. The vulnerability is not listed in CISA’s KEV catalog, suggesting no widespread exploitation as of the current data. Nonetheless, any code path that calls this function without proper user‑access validation gives privileged code a direct avenue to corrupt kernel memory, making this a high‑severity local privilege escalation or abort scenario.

Affected Systems

All Linux kernel builds that contain the __copy_user_nocache function are potentially impacted. The vulnerability exists before any official patch is applied, and the specific kernel versions are not listed in the data. Linux kernel users on any distribution should treat all kernels that have not applied the rename and protection changes as vulnerable.

Risk and Exploitability

The issue does not appear to be remotely exploitable from user space alone; it requires a driver or privileged process that calls the misnamed routine. The CVSS score is not provided, and EPSS data is unavailable, indicating limited evidence of active exploitation. The vulnerability is not listed in CISA’s KEV catalog, suggesting no widespread exploitation as of the current data. Nonetheless, any code path that calls this function without proper user‑access validation gives privileged code a direct avenue to corrupt kernel memory, making this a high‑severity local privilege escalation or abort scenario.

Generated by OpenCVE AI on May 5, 2026 at 18:05 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Apply the kernel patch that renames the function and restricts its use to contexts that have performed proper user‑space access checks.
  • Modify any drivers that call '__copy_user_nocache()' to use safe copying helpers such as copy_from_user or memcpy with correct source/destination validation.
  • Remove or disable any driver implementations that misuse the function for performance tweaks or unprotected kernel copies.

Generated by OpenCVE AI on May 5, 2026 at 18:05 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Tue, 05 May 2026 18:30:00 +0000

Type Values Removed Values Added
Weaknesses CWE-20
CWE-29

Tue, 05 May 2026 16:15:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: x86-64: rename misleadingly named '__copy_user_nocache()' function This function was a masterclass in bad naming, for various historical reasons. It claimed to be a non-cached user copy. It is literally _neither_ of those things. It's a specialty memory copy routine that uses non-temporal stores for the destination (but not the source), and that does exception handling for both source and destination accesses. Also note that while it works for unaligned targets, any unaligned parts (whether at beginning or end) will not use non-temporal stores, since only words and quadwords can be non-temporal on x86. The exception handling means that it _can_ be used for user space accesses, but not on its own - it needs all the normal "start user space access" logic around it. But typically the user space access would be the source, not the non-temporal destination. That was the original intention of this, where the destination was some fragile persistent memory target that needed non-temporal stores in order to catch machine check exceptions synchronously and deal with them gracefully. Thus that non-descriptive name: one use case was to copy from user space into a non-cached kernel buffer. However, the existing users are a mix of that intended use-case, and a couple of random drivers that just did this as a performance tweak. Some of those random drivers then actively misused the user copying version (with STAC/CLAC and all) to do kernel copies without ever even caring about the exception handling, _just_ for the non-temporal destination. Rename it as a first small step to actually make it halfway sane, and change the prototype to be more normal: it doesn't take a user pointer unless the caller has done the proper conversion, and the argument size is the full size_t (it still won't actually copy more than 4GB in one go, but there's also no reason to silently truncate the size argument in the caller). Finally, use this now sanely named function in the NTB code, which mis-used a user copy version (with STAC/CLAC and all) of this interface despite it not actually being a user copy at all.
Title x86-64: rename misleadingly named '__copy_user_nocache()' function
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-05-05T15:29:29.510Z

Reserved: 2026-05-01T14:12:55.982Z

Link: CVE-2026-43073

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-05-05T16:16:16.650

Modified: 2026-05-05T16:16:16.650

Link: CVE-2026-43073

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-05-05T18:15:29Z

Weaknesses