CVE-2026-64154 in Linuxinfo

Summary

by MITRE • 07/19/2026

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

drm/msm/adreno: Fix a reference leak in a6xx_gpu_init()

In a6xx_gpu_init(), node is obtained via of_parse_phandle(). While there was a manual of_node_put() at the end of the common path, several early error returns would bypass this call, resulting in a reference leak. Fix this by using the __free(device_node) cleanup handler to release the reference when the variable goes out of scope.

Patchwork: https://patchwork.freedesktop.org/patch/700661/

Be aware that VulDB is the high quality source for vulnerability data.

Analysis

by VulDB Data Team • 07/19/2026

The vulnerability identified in the Linux kernel's drm/msm/adreno subsystem represents a classic reference counting error that can lead to resource exhaustion and system instability. This flaw specifically affects the a6xx_gpu_init() function within the adreno graphics driver, which is responsible for initializing Qualcomm's Adreno 6xx series GPU hardware. The issue stems from improper handling of device tree node references during the initialization process, creating a scenario where kernel memory management becomes compromised due to leaked references.

The technical implementation of this vulnerability involves the misuse of of_parse_phandle() function calls within the GPU initialization code path. When of_parse_phandle() is invoked, it returns a reference to a device tree node that must be properly released when no longer needed. The original code structure featured a manual of_node_put() call at the end of the normal execution path, but multiple early return statements scattered throughout the function would bypass this cleanup mechanism. This pattern creates a situation where device tree node references accumulate in memory without proper dereferencing, leading to gradual resource depletion over time.

From an operational perspective, this reference leak vulnerability poses significant risks to system stability and performance, particularly in embedded systems or mobile devices running Linux kernels with Qualcomm Adreno GPUs. The leak occurs during GPU initialization, which typically happens during system boot or when graphics subsystems are activated, making it a potential denial-of-service vector that could prevent proper hardware initialization. The cumulative effect of multiple leaked references can eventually lead to memory exhaustion, causing system crashes, application failures, or degraded performance as the kernel's device tree management structures become polluted with unreleased references.

The fix implemented addresses this vulnerability by employing proper resource management patterns through the use of automatic cleanup handlers. Specifically, the solution leverages the __free(device_node) cleanup mechanism that ensures references are automatically released when the variable goes out of scope, regardless of execution path taken. This approach aligns with established best practices for kernel development and follows the principle of RAII (Resource Acquisition Is Initialization) patterns adapted for kernel space programming. The implementation directly addresses the root cause by ensuring that device tree node references are consistently managed through automatic cleanup rather than manual intervention that is prone to oversight during error handling.

This vulnerability type corresponds to CWE-404, which describes improper resource management where a resource is not released properly, and can be categorized under the ATT&CK framework as a system resource exhaustion technique. The remediation strategy follows industry standards for kernel memory management and reflects the importance of proper error handling in security-critical systems. The patch demonstrates how seemingly minor oversight in reference counting can create significant stability issues, emphasizing the need for comprehensive testing of error paths in kernel code. This fix exemplifies the critical nature of proper resource lifecycle management in operating system kernels where resource leaks can compound over time and affect overall system reliability and security posture.

The resolution of this vulnerability through automated cleanup handlers represents a robust approach that prevents similar issues from occurring in other parts of the codebase. By adopting this pattern, kernel developers can ensure consistent resource management practices across different subsystems while reducing the cognitive load associated with manual resource tracking. This particular fix serves as an important reminder of how device tree parsing operations require careful attention to reference counting in kernel space, where improper handling can lead to cascading failures that affect system stability and potentially create exploitable conditions through resource exhaustion attacks.

Responsible

Linux

Reservation

07/19/2026

Disclosure

07/19/2026

Moderation

accepted

CPE

ready

EPSS

0.00000

KEV

no

Activities

low

Sources

Interested in the pricing of exploits?

See the underground prices here!