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

staging: nvec: fix use-after-free in nvec_rx_completed()

In nvec_rx_completed(), when an incomplete RX transfer is detected,
nvec_msg_free() is called to return the message back to the pool by
clearing its 'used' atomic flag. Immediately after this, the code
accesses nvec->rx->data[0] to check the message type.

Since nvec_msg_free() marks the pool slot as available via atomic_set(),
any concurrent or subsequent call to nvec_msg_alloc() could claim that
same slot and overwrite its data[] array. Reading nvec->rx->data[0] after
freeing the message is therefore a use-after-free.

Fix this by saving the message type byte before calling nvec_msg_free(),
then using the saved value for the battery quirk check.
Published: 2026-08-15
Score: 8.4 High
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The vulnerability is a use‑after‑free in the Linux kernel's staging nvec driver function nvec_rx_completed(). When an incomplete RX transfer is detected, the driver frees a message buffer but immediately accesses its first data byte. If another allocation has already reclaimed that buffer, the read accesses memory that may contain attacker‑controlled data, allowing memory corruption in the kernel. This flaw could lead to privilege escalation or code execution; the actual occurrence of these outcomes is inferred from the vulnerability's effect on kernel memory, not directly confirmed in the description.

Affected Systems

All Linux kernel builds that include the staging nvec driver before the patch are affected. Systems running any unpatched kernel where the nvec module is loaded or autoloaded are potentially vulnerable; the issue is not tied to a specific kernel version.

Risk and Exploitability

The CVSS score of 8.4 indicates high severity, while the EPSS score of less than 1 % indicates a very low current exploitation probability, and the vulnerability is not listed in CISA’s KEV catalog. Nevertheless, the flaw permits arbitrary memory corruption in kernel space, which could lead to privilege escalation or code execution if an attacker can influence the nvec_rx_completed path, for example by sending crafted network traffic to the device. No public exploit is known, so the immediate risk is uncertain but potentially significant if a suitable exploit is developed.

Generated by OpenCVE AI on August 22, 2026 at 05:53 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Apply a kernel update that contains the nvec driver patch which removes the use‑after‑free
  • If a kernel update cannot be applied immediately, blacklist the nvec module or unload it to prevent the vulnerable driver from loading
  • Restrict traffic to devices that use the nvec driver to limit attempts that might trigger the faulty code path

Generated by OpenCVE AI on August 22, 2026 at 05:53 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Sat, 22 Aug 2026 04:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-416

Thu, 20 Aug 2026 00:15:00 +0000

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

None

threat_severity

Moderate


Mon, 17 Aug 2026 14:30:00 +0000

Type Values Removed Values Added
Weaknesses CWE-416

Mon, 17 Aug 2026 10:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-416

Mon, 17 Aug 2026 06:00:00 +0000

Type Values Removed Values Added
Metrics cvssV3_1

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


Sat, 15 Aug 2026 18:30:00 +0000

Type Values Removed Values Added
Weaknesses CWE-416

Sat, 15 Aug 2026 06:00:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: staging: nvec: fix use-after-free in nvec_rx_completed() In nvec_rx_completed(), when an incomplete RX transfer is detected, nvec_msg_free() is called to return the message back to the pool by clearing its 'used' atomic flag. Immediately after this, the code accesses nvec->rx->data[0] to check the message type. Since nvec_msg_free() marks the pool slot as available via atomic_set(), any concurrent or subsequent call to nvec_msg_alloc() could claim that same slot and overwrite its data[] array. Reading nvec->rx->data[0] after freeing the message is therefore a use-after-free. Fix this by saving the message type byte before calling nvec_msg_free(), then using the saved value for the battery quirk check.
Title staging: nvec: fix use-after-free in nvec_rx_completed()
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-17T05:44:51.131Z

Reserved: 2026-08-09T03:40:39.936Z

Link: CVE-2026-72489

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-08-15T06:22:23.190

Modified: 2026-08-17T06:19:17.150

Link: CVE-2026-72489

cve-icon Redhat

Severity : Moderate

Publid Date: 2026-08-15T00:00:00Z

Links: CVE-2026-72489 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-08-22T06:00:11Z

Weaknesses
  • CWE-825

    Expired Pointer Dereference