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

nvdimm/bus: Fix potential use after free in asynchronous initialization

Dingisoul with KASAN reports a use after free if device_add() fails in
nd_async_device_register().

Commit b6eae0f61db2 ("libnvdimm: Hold reference on parent while
scheduling async init") correctly added a reference on the parent device
to be held until asynchronous initialization was complete. However, if
device_add() results in an allocation failure the ref count of the
device drops to 0 prior to the parent pointer being accessed. Thus
resulting in use after free.

The bug bot AI correctly identified the fix. Save a reference to the
parent pointer to be used to drop the parent reference regardless of the
outcome of device_add().
Published: 2026-04-03
Score: 4.7 Medium
EPSS: n/a
KEV: No
Impact: Use‑after‑free leading to kernel crash or arbitrary code execution
Action: Patch Kernel
AI Analysis

Impact

A use‑after‑free flaw exists in the Linux kernel’s NVDIMM bus subsystem during asynchronous initialization. When device_add() fails in nd_async_device_register(), the reference count of the parent device can be dropped to zero before the code later accesses the parent pointer, resulting in a dangling pointer dereference. This memory corruption can cause a kernel crash or, if an attacker can manipulate the failure, may enable arbitrary code execution with kernel privileges. The weakness is a classic use‑after‑free and is listed as CWE‑416. No CVSS score is provided in the data, but the potential impact on kernel integrity and confidentiality is high.

Affected Systems

All Linux kernel releases that include the NVDIMM bus subsystem but lack the patch introduced by commit b6eae0f61db2. In practice, this means any kernel version before the commit that added the parent reference handling during asynchronous initialization. Users should verify whether their distribution’s kernel contains this commit or a later equivalent patch.

Risk and Exploitability

The exploitability of the vulnerability is constrained to environments where the malicious party can trigger an asynchronous initialization failure of an NVDIMM device, typically requiring local system access or the ability to influence device add operations. The EPSS score is not available, and the vulnerability is not listed in the CISA KEV catalog, indicating no known widespread exploitation. Nevertheless, the kernel memory corruption nature warrants immediate attention, as the flaw can lead to unrestricted kernel access if exploited successfully.

Generated by OpenCVE AI on April 3, 2026 at 19:22 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade the Linux kernel to a version that includes commit b6eae0f61db2 or any later patch that addresses the NVDIMM bus use‑after‑free.
  • If a kernel upgrade is not immediately possible, disable or unload the NVDIMM related kernel modules to prevent the vulnerable code path from executing.
  • Run memory‑safety tests such as Kernel Address Sanitizer (KASAN) in a staging environment before deploying the patched kernel to ensure kernel stability and detect any lingering reference‑counting issues.

Generated by OpenCVE AI on April 3, 2026 at 19:22 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Sat, 04 Apr 2026 01:15:00 +0000

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

None

cvssV3_1

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

threat_severity

Moderate


Fri, 03 Apr 2026 21:30:00 +0000

Type Values Removed Values Added
Weaknesses CWE-416

Fri, 03 Apr 2026 16:30:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: nvdimm/bus: Fix potential use after free in asynchronous initialization Dingisoul with KASAN reports a use after free if device_add() fails in nd_async_device_register(). Commit b6eae0f61db2 ("libnvdimm: Hold reference on parent while scheduling async init") correctly added a reference on the parent device to be held until asynchronous initialization was complete. However, if device_add() results in an allocation failure the ref count of the device drops to 0 prior to the parent pointer being accessed. Thus resulting in use after free. The bug bot AI correctly identified the fix. Save a reference to the parent pointer to be used to drop the parent reference regardless of the outcome of device_add().
Title nvdimm/bus: Fix potential use after free in asynchronous initialization
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-04-03T15:16:03.246Z

Reserved: 2026-03-09T15:48:24.085Z

Link: CVE-2026-31399

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-04-03T16:16:38.410

Modified: 2026-04-03T16:16:38.410

Link: CVE-2026-31399

cve-icon Redhat

Severity : Moderate

Publid Date: 2026-04-03T00:00:00Z

Links: CVE-2026-31399 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-04-03T21:15:27Z

Weaknesses