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

drm/imagination: Fix reference and vm_bo handling in remap()

When a map overlaps part of an existing mapping, pvr_vm_gpuva_remap()
splits the mapping into prev/next parts covering what the request did
not take, instead of creating something new. It gets two things wrong.

- A GEM reference is taken for each part but it's never needed and never
dropped, so it leaks one reference per split (remap-next-in-2m in
tests/imagination/pvr_vm_map.c):

CRITICAL: 33558528 bytes of shmem still held after close

- The parts still belong to the original object being split, but
pvr_vm_gpuva_remap() links them to ctx->gpuvm_bo, the new object's
vm_bo:

prev_va --obj--> BO_A BO_B <--obj-- vm_bo (ctx->gpuvm_bo)
\___________link___________/ (mismatch: BO_A != BO_B)

drm_gpuva_link() catches the mismatch:

WARNING: drivers/gpu/drm/drm_gpuvm.c:2108 at drm_gpuva_link+0x2ec/0x310
drm_WARN_ON(obj != vm_bo->obj)
Call trace:
drm_gpuva_link
pvr_vm_gpuva_remap
__drm_gpuvm_sm_map
pvr_vm_map
pvr_ioctl_vm_map

Link them to op->remap.unmap->va->vm_bo instead.

The locking of the GPUVA lists of the other objects touched by a split is
not addressed here; it is handled by switching the GPUVM to immediate
mode.
Published: 2026-10-23
Score: 3.3 Low
EPSS: < 1% Very Low
KEV: No
Impact: Resource Exhaustion
Action: Apply Patch
AI Analysis

Impact

A flaw in the Linux kernel DRM Imagination driver causes overlapping GPU memory mappings to be split unnecessarily. Each split takes a GEM reference that is never released, leaking up to 32 MB of shared memory per mapping operation, and it incorrectly links the split parts to a mismatched buffer object. This double issue can exhaust system memory and potentially corrupt GPU data, leading to denial‑of‑service and data‑integrity problems.

Affected Systems

All Linux kernel builds that include the legacy DRM Imagination driver. The vulnerability resides entirely in the kernel’s GPU virtual‑memory mapping code and does not affect user‑space applications directly.

Risk and Exploitability

The CVSS score of 3.3 categorizes the flaw as low severity, and the EPSS score of < 1% indicates a very low likelihood of exploitation. The vulnerability is not listed in CISA’s KEV catalog. Exploitation would require a local, privileged kernel context and repeated triggering of the overlapping mapping logic, which is beyond ordinary user‑level capabilities. Therefore the overall risk remains low but could increase if an attacker gains kernel or driver‑level control on the system.

Generated by OpenCVE AI on October 29, 2026 at 23:16 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Install the latest kernel release that incorporates the CVE‑2026‑98949 fix.
  • Reboot the system into the updated kernel to ensure the patch takes effect.
  • If immediate updating is not possible, avoid using the Imagination driver’s GPU remapping features or disable the driver until the vulnerability is patched.
  • Monitor kernel logs for any drm_WARN_ON messages that may indicate residual mismatches.

Generated by OpenCVE AI on October 29, 2026 at 23:16 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Thu, 29 Oct 2026 20:30:00 +0000

Type Values Removed Values Added
Weaknesses CWE-401

Thu, 29 Oct 2026 12:15:00 +0000

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

None

cvssV3_1

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

threat_severity

Low


Fri, 23 Oct 2026 20:45:00 +0000

Type Values Removed Values Added
First Time appeared Linux linux
Vendors & Products Linux linux

Fri, 23 Oct 2026 15:30:00 +0000

Type Values Removed Values Added
Weaknesses CWE-401

Fri, 23 Oct 2026 12:30:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: drm/imagination: Fix reference and vm_bo handling in remap() When a map overlaps part of an existing mapping, pvr_vm_gpuva_remap() splits the mapping into prev/next parts covering what the request did not take, instead of creating something new. It gets two things wrong. - A GEM reference is taken for each part but it's never needed and never dropped, so it leaks one reference per split (remap-next-in-2m in tests/imagination/pvr_vm_map.c): CRITICAL: 33558528 bytes of shmem still held after close - The parts still belong to the original object being split, but pvr_vm_gpuva_remap() links them to ctx->gpuvm_bo, the new object's vm_bo: prev_va --obj--> BO_A BO_B <--obj-- vm_bo (ctx->gpuvm_bo) \___________link___________/ (mismatch: BO_A != BO_B) drm_gpuva_link() catches the mismatch: WARNING: drivers/gpu/drm/drm_gpuvm.c:2108 at drm_gpuva_link+0x2ec/0x310 drm_WARN_ON(obj != vm_bo->obj) Call trace: drm_gpuva_link pvr_vm_gpuva_remap __drm_gpuvm_sm_map pvr_vm_map pvr_ioctl_vm_map Link them to op->remap.unmap->va->vm_bo instead. The locking of the GPUVA lists of the other objects touched by a split is not addressed here; it is handled by switching the GPUVM to immediate mode.
Title drm/imagination: Fix reference and vm_bo handling in remap()
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 Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-10-23T12:19:08.946Z

Reserved: 2026-09-25T10:25:14.382Z

Link: CVE-2026-98949

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-10-23T13:17:16.037

Modified: 2026-10-23T13:17:16.037

Link: CVE-2026-98949

cve-icon Redhat

Severity : Low

Publid Date: 2026-10-23T12:19:08Z

Links: CVE-2026-98949 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-10-29T23:30:03Z

Weaknesses
  • CWE-911

    Improper Update of Reference Count