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

drm/nouveau/dmem: fix callocated underflow on large folio split

nouveau_dmem_folio_free() drops chunk->callocated once per freed folio,
while a large (compound) device-private folio is only counted once when
it is allocated. When such a folio is split, the mm core invokes
->folio_split() (nouveau_dmem_folio_split()) once for each new
sub-folio, but the hook only fixes up the sub-folio metadata and leaves
chunk->callocated unchanged.

Each resulting sub-folio is later freed separately, so after a split
the single allocation (+1) is met by N frees (-N), leaving
chunk->callocated short by N-1. On the first split/free cycle it
underflows: WARN_ON(!chunk->callocated) fires, the unsigned counter
wraps and never returns to zero, so the chunk can no longer be
reclaimed (nouveau_dmem_fini() also warns on the leaked count).

Account for the new sub-folio in the split hook, under the same lock as
nouveau_dmem_folio_free(), so the count stays balanced.
Published: 2026-09-24
Score: n/a
EPSS: < 1% Very Low
KEV: No
Impact: Memory Leak leading to Kernel Resource Exhaustion
Action: Apply Patch
AI Analysis

Impact

The kernel's nouveau memory management has a counter‑mismanagement bug. When a large compound folio belonging to device‑private memory is split into smaller sub‑folios, the code that updates the allocation counter mistakenly does not insert the new sub‑folio into the counter. After the split each sub‑folio is freed individually, making the counter go below zero and wrap around the unsigned integer limit. This makes the kernel believe that fewer allocations exist than actually do, preventing the associated memory chunk from being reclaimed and causing a persistent memory leak. The counter underflow also triggers a warning but does not recover, leaving the memory permanently allocated.

Affected Systems

The issue exists in the Linux kernel source, affecting all distributions that ship either the upstream kernel or a derivative with the nouveau graphics driver enabled. The vendor information simply lists Linux:Linux, and no specific kernel version ranges are provided in the data; therefore any kernel where this code path is active and the bug has not been patched is affected. The related commit references point to a patch that has been merged, suggesting that kernels newer than that commit are fixed.

Risk and Exploitability

Because the bug is a kernel memory‑management defect with no clearly defined exploitation vector, it is classified as a local denial‑of‑service risk: a user or process that can allocate large device‑private memory blobs via the nouveau driver could trigger the counter underflow and cause the kernel to leak memory. Security scores are not provided, and the EPSS data is not available; the vulnerability is also not listed in the CISA KEV catalog. However, once the flaw is introduced the system may run into reduced memory availability and potentially trigger a kernel OOM killer or become unresponsive. The risk is thus significant for affected systems running the vulnerable kernel.

Generated by OpenCVE AI on September 25, 2026 at 11:13 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Apply the latest kernel release that includes the nouveau memory counter fix (commit 0163b92946d0...). Review vendor kernel changelog for the affected distribution.
  • If immediate kernel update is not possible, disable the nouveau driver or use an alternative graphics stack (e.g., NVIDIA proprietary driver or Intel driver) to prevent the memory allocation logic from being exercised.
  • Monitor system memory and log files for repeated WARN_ON messages regarding nouveau_dmem_chunk_allocated. Adjust kernel parameters or limit GPU memory usage if the leak persists.

Generated by OpenCVE AI on September 25, 2026 at 11:13 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Fri, 25 Sep 2026 11:30:00 +0000

Type Values Removed Values Added
Weaknesses CWE-190
CWE-399

Thu, 24 Sep 2026 15:45:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: drm/nouveau/dmem: fix callocated underflow on large folio split nouveau_dmem_folio_free() drops chunk->callocated once per freed folio, while a large (compound) device-private folio is only counted once when it is allocated. When such a folio is split, the mm core invokes ->folio_split() (nouveau_dmem_folio_split()) once for each new sub-folio, but the hook only fixes up the sub-folio metadata and leaves chunk->callocated unchanged. Each resulting sub-folio is later freed separately, so after a split the single allocation (+1) is met by N frees (-N), leaving chunk->callocated short by N-1. On the first split/free cycle it underflows: WARN_ON(!chunk->callocated) fires, the unsigned counter wraps and never returns to zero, so the chunk can no longer be reclaimed (nouveau_dmem_fini() also warns on the leaked count). Account for the new sub-folio in the split hook, under the same lock as nouveau_dmem_folio_free(), so the count stays balanced.
Title drm/nouveau/dmem: fix callocated underflow on large folio split
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-09-24T15:32:51.743Z

Reserved: 2026-09-17T16:02:15.095Z

Link: CVE-2026-93233

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-09-24T16:17:18.887

Modified: 2026-09-24T16:17:18.887

Link: CVE-2026-93233

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-09-25T11:15:05Z

Weaknesses