CVE-2026-98319
Executive Summary
CVE-2026-98319 is a memory leak in the Linux kernel's Direct Rendering Manager (DRM) subsystem, specifically in the handling of the out_fence_ptr parameter during atomic page-flip setup. When a caller supplies an out_fence_ptr without setting the DRM_MODE_PAGE_FLIP_EVENT flag, a drm_pending_vblank_event structure is allocated but may never be released if a subsequent failure occurs in setup_out_fence(). Affected systems are Linux hosts exposing DRM/KMS interfaces to local users — primarily desktops, workstations, and multi-tenant or containerized environments where an unprivileged process can drive DRM ioctls. The impact is a kernel memory leak that can be triggered repeatedly to exhaust kernel memory, causing denial of service; there is no evidence of confidentiality or integrity impact.
This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.
No signup required
Technical Analysis
The vulnerability resides in the Linux kernel DRM subsystem's atomic commit path. The NVD description states that when an out_fence_ptr is provided without the DRM_MODE_PAGE_FLIP_EVENT flag set, a drm_pending_vblank_event object is allocated. If a subsequent failure occurs — either an allocation failure or another failure inside setup_out_fence() — that event object is left in a partially initialized state: its base.fence is never set, and consequently the object is not released by the normal complete_signaling() cleanup path.
The defect is therefore a resource lifecycle asymmetry: an allocation on a rare branch is not matched by a corresponding free on the error path. The fix, as described, mirrors the handling already present for the DRM_MODE_PAGE_FLIP_EVENT case when drm_event_reserve_init() fails:
- In
prepare_signaling(), on failure, release the event and setcrtc_state->eventtoNULL. - Use
drm_event_cancel_free(), which additionally undoes a priordrm_event_reserve_init()if that call had already succeeded. - Because
prepare_signaling()performs the release, nothing further is required atcomplete_signaling().
The attack surface is the DRM ioctl entry point that accepts an out_fence_ptr for atomic page-flip requests. This is reachable by local processes that have access to a DRM device node (typically /dev/dri/* in standard Linux configurations; the specific node name is not stated in the NVD text and should be verified against the target distribution).
Because the leaked object is kernel slab memory that is never reclaimed until reboot, the leak is cumulative. A caller that can repeatedly force the error path — for example by inducing allocation failures under memory pressure, or by triggering failure inside setup_out_fence() — accumulates unreleased drm_pending_vblank_event objects. Over time this degrades and eventually exhausts available kernel memory.
Technical detail beyond this is limited: the NVD description does not disclose specific calling processes, exact ioctl command numbers, or the precise conditions inside setup_out_fence() that constitute "another failure." Analysts should treat the above as the full extent of authoritative information and avoid assuming additional specifics.
Exploitation Scenarios
No public proof-of-concept, exploit code, or Nuclei template exists for CVE-2026-98319 (POC_STATUS: None). The attack chain below is inferred strictly from the vulnerability class — a kernel memory leak on an error path — and from the functions named in the NVD description.
Reconnaissance / target identification. An attacker with local code execution on a Linux host (for example, an unprivileged user, a compromised container with access to a DRM device node, or a low-privileged service account) enumerates available DRM devices and confirms the presence of DRM/KMS support. The objective is to identify a target where the attacker can invoke DRM atomic page-flip ioctls.
Triggering the flaw class. The attacker issues DRM atomic page-flip requests that supply an
out_fence_ptrwhile deliberately omitting theDRM_MODE_PAGE_FLIP_EVENTflag. This steers execution down the path wheredrm_pending_vblank_eventis allocated without the corresponding event-flag bookkeeping.Forcing the error branch. To make the allocation leak, the attacker must cause the operation to fail after the event is allocated — either by driving the system into allocation failure conditions or by causing
setup_out_fence()to fail. Becausecomplete_signaling()does not release an event whosebase.fencewas never set, the object remains allocated indefinitely.Post-exploitation impact. By repeating the request in a loop, the attacker accumulates leaked kernel memory. Sustained repetition results in progressive memory exhaustion, leading to system instability, denial of service for other workloads, and on memory-constrained systems, eventual kernel memory allocation failure or host reboot. Because the leak is a scarce kernel resource, even modest rates sustained over hours can be impactful on long-uptime servers.
Caveats: The exact mechanics required to reliably force setup_out_fence() failure are not documented in the available data, and no weaponized chain is known. The above describes the vulnerability class and the mechanism as literally described by NVD, not a validated exploit.
Impact Assessment
- Confidentiality: None observed. The defect is a resource leak; it does not disclose memory contents.
- Integrity: None observed. No write primitive or state corruption is described.
- Availability: This is the primary impact vector. Unreleased
drm_pending_vblank_eventobjects accumulate and reduce available kernel memory, degrading system performance and ultimately causing denial of service. - Privileges required: Local, low privilege — the attacker needs the ability to invoke DRM page-flip ioctls, which is generally available to any process with access to the DRM device node.
- User interaction: None required.
- Blast radius: Any Linux system exposing DRM/KMS to untrusted local processes. Multi-tenant hosts, VDI platforms, CI runners, and container hosts where DRM nodes are passed through are at elevated risk. Single-user desktops are lower risk since the local user is typically trusted.
- Exploitability: Rated low-to-moderate. The trigger conditions involve deliberate error-path induction, and no public exploit exists.
- CVSS: NVD assigns no score (N/A). No EPS00 score has been published by FIRST.org; none should be inferred. CISA KEV status: NO.
The primary business concern is availability and stability of shared Linux infrastructure rather than data compromise. There is no supply-chain or package-ecosystem angle in the available data (OSV packages: N/A).
Detection Guidance
Detection for this vulnerability is challenging because exploitation is local, generates no distinctive network traffic, and the trigger is a legitimate-looking DRM ioctl sequence. Detection should focus on host-level behavioral anomalies (abnormal DRM ioctl rates, kernel memory growth) and kernel log events.
Sigma Rule
title: Linux Kernel DRM Page Flip Repeated Out_Fence_Ptr Leak Attempt
id: 8c4c1f2e-3b7a-4d5e-9f01-6a2b8c7d9e10
status: experimental
description: Detects high-frequency invocations of DRM-related tools/processes consistent with repeated atomic page-flip ioctls supplying out_fence_ptr without DRM_MODE_PAGE_FLIP_EVENT, associated with CVE-2026-98319 kernel memory leak.
references:
- https://nvd.nist.gov/vuln/detail/CVE-2026-98319
author: valtersit.com threat intelligence
date: 2026/01/01
tags:
- attack.impact
- attack.t1499
- cve.2026.98319
logsource:
product: linux
category: process_creation
detection:
selection_tool:
Image|endswith:
- '/drm_info'
- '/modetest'
- '/kmscube'
selection_loop:
CommandLine|contains:
- 'page-flip'
- 'atomic'
- 'out-fence'
condition: selection_tool and selection_loop
falsepositives:
- Legitimate DRM/KMS development and testing workflows
- Graphics driver validation suites
level: low
YARA Rule
rule CVE_2026_98319_DRM_OutFencePtr_Leak_Indicator
{
meta:
description = "Heuristic indicator for binaries or scripts referencing DRM out_fence_ptr page-flip sequences associated with CVE-2026-98319"
author = "valtersit.com threat intelligence"
reference = "https://nvd.nist.gov/vuln/detail/CVE-2026-98319"
date = "2026-01-01"
severity = "low"
strings:
$drm1 = "out_fence_ptr" ascii wide
$drm2 = "DRM_MODE_PAGE_FLIP_EVENT" ascii wide
$drm3 = "drm_pending_vblank_event" ascii wide
$drm4 = "setup_out_fence" ascii wide
$drm5 = "drm_event_cancel_free" ascii wide
condition:
uint32be(0) == 0x7F454C46 and 2 of ($drm*)
}
Suricata IDS Rule
alert tcp any any -> any any (msg:"CVE-2026-98319 Linux DRM out_fence_ptr leak - local ioctl not network-observable"; flow:to_server; content:"|2f 64 65 76 2f 64 72 69|"; nocase; classtype:attempted-dos; sid:2026983190; rev:1; metadata:created_at 2026_01_01, cve CVE_2026_98319;)
# NOTE: This vulnerability is triggered via local DRM ioctl calls and produces no
# distinctive network traffic. The network signature below only fires on cleartext
# references to DRM device paths and is provided for completeness of coverage
# tooling; network-based detection is NOT an effective control for this CVE.
Elastic Detection
process where event.type == "start" and
process.name in ("modetest", "drm_info", "kmscube", "atomic-test") and
process.args_count > 0 and
process.args : ("*atomic*", "*page-flip*", "*out-fence*")
Effectiveness note: Elastic EQL process events capture invocation of DRM test tooling but cannot observe the ioctl-level
out_fence_ptrflag combinations that constitute the actual leak. This rule is a weak proxy indicator and should be correlated with host kernel-memory-growth telemetry. There is no reliable endpoint detection content for this defect class from the available data.
Splunk SPL Query
index=linux_syslog OR index=os_kernel
("drm" OR "drm_pending_vblank_event" OR "setup_out_fence" OR "out_fence_ptr")
| stats count by host, source, _raw
| where count > 5
| sort - count
This search targets kernel log lines referencing DRM event/fence handling. Because the leak itself is silent, treat matches as investigative leads only. Pair with
top/memory-metric dashboards tracking kernel memory consumption over time on affected hosts.
Wazuh OSSEC Rule
<group name="linux,kernel,drm,cve_2026_98319,">
<rule id="20298319" level="6">
<decoded_as>syslog</decoded_as>
<match>drm_pending_vblank_event|setup_out_fence|out_fence_ptr</match>
<description>CVE-2026-98319: DRM out_fence_ptr vblank event leak references in kernel log</description>
<group>cve_2026_98319,drm,memory_leak,</group>
</rule>
<rule id="20298320" level="10">
<if_sid>20298319</if_sid>
<same_source_ip />
<frequency>10</frequency>
<timeframe>300</timeframe>
<description>CVE-2026-98319: Repeated DRM out_fence_ptr leak indicators - possible kernel memory exhaustion attempt</description>
<group>cve_2026_98319,drm,memory_leak,attempted_dos,</group>
</rule>
</group>
Mitigation & Patch Guidance
Patch confidence: 0/4 — UNPATCHED. No patch evidence exists from any tracked source. There is no vendor advisory, no fixed version, and no CVE-listed remediation for CVE-2026-98319 in the data provided.
Immediate mitigations
- Restrict access to DRM device nodes. Ensure
/dev/dri/*(device node name to be confirmed per distribution) is not accessible to untrusted local users. Audit current ownership and permissions. - In containerized and multi-tenant environments, do not pass through DRM/KMS device nodes to untrusted or semi-trusted workloads. Remove
--device /dev/dri-style mappings unless explicitly required. - Reduce blast radius by isolating workloads that require DRM access (graphics, media transcoding, VDI) into dedicated hosts or namespaces, distinct from sensitive workloads.
- Monitor kernel memory consumption trends on hosts that must expose DRM, and alert on abnormal upward drift in unrebooted uptime.
- Restrict access to DRM device nodes. Ensure
Patch / upgrade steps
- No fixed version is currently published. Track the upstream Linux kernel stable and longterm branches for a commit referencing the DRM
out_fence_ptr/setup_out_fence()error-path fix described in NVD. - Subscribe to the Linux kernel mailing list (
dri-devel) and your distribution's security advisory channel to receive notification when a patched kernel package is released. - When a patch is available, apply the distribution kernel update and reboot promptly, since the fix is a kernel code change.
- No fixed version is currently published. Track the upstream Linux kernel stable and longterm branches for a commit referencing the DRM
Long-term hardening
- Enforce the principle of least privilege for local accounts and service users; avoid granting interactive access to graphics-capable hosts to untrusted users.
- Deploy kernel hardening and memory-pressure alerting (e.g., monitoring of slab allocation growth,
oom_killevents, and per-subsystem memory attribution). - Incorporate regular kernel patch-cycle management with defined SLAs for kernel security updates across fleets.
- Consider a maintained long-term-support kernel stream to shorten the window between upstream fixes and production deployment.
References
- NVD — CVE-2026-98319: https://nvd.nist.gov/vuln/detail/CVE-2026-98319
- Linux kernel DRM subsystem source tree (dri-devel): https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/gpu/drm
- Linux kernel stable / longterm release branches: https://www.kernel.org/
- CWE-401 — Missing Release of Memory after Effective Lifetime: https://cwe.mitre.org/data/definitions/401.html
- CISA Known Exploited Vulnerabilities Catalog (status check — CVE-2026-98319 not listed): https://www.cisa.gov/known-exploited-vulnerabilities-catalog
No threat actor campaigns or exploit-in-the-wild evidence are associated with CVE-2026-98319 per available data. CISA KEV status: NO. No public proof-of-concept, exploit code, or nuclei template exists.
What is this? Security researchers use these exact search queries on Shodan.io (a search engine for internet-connected devices) to find vulnerable systems globally. You can copy these dorks to see if your organization's IP space is exposed.