CVE-2026-74381 in Linux
Summary
by MITRE • 08/15/2026
In the Linux kernel, the following vulnerability has been resolved:
gpu: host1x: Allow entries in BO caches to be freed
When a buffer object is pinned via host1x_bo_pin() with a cache, the resulting mapping is kept in the cache so it can be reused on subsequent pins. Each mapping held a reference to the underlying host1x_bo (taken in tegra_bo_pin / gather_bo_pin), so as long as a mapping was cached, the bo itself could not be freed.
However, the only way to remove the cached mapping was through the free path of the buffer object. This meant that if a bo got cached, it could never get freed again.
Resolve the circularity by holding a weak reference to the bo from the cache side. This is done by having the .pin callbacks not bump the bo's refcount -- instead the common Host1x bo code does so, except for the cache reference.
Also move the remove-cache-mapping-on-free code into a common function inside Host1x code. This is only called from the TegraDRM GEM buffers since those are the only ones that can be cached at the moment.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.
Analysis
by VulDB Data Team • 08/15/2026
This vulnerability exists within the Linux kernel's host1x graphics subsystem, specifically affecting the buffer object (BO) caching mechanism used in Tegra-based systems. The issue stems from a circular reference problem that prevents proper memory management and resource cleanup. When buffer objects are pinned through the host1x_bo_pin() function with cache enabled, the resulting memory mappings are stored in a cache for potential reuse during subsequent pin operations. The fundamental flaw lies in how reference counting is managed between these cached mappings and their underlying buffer objects.
The technical implementation creates a deadlock scenario where each cached mapping maintains a strong reference to its corresponding host1x_bo structure through the tegra_bo_pin function's gather_bo_pin mechanism. This reference prevents the buffer object from being freed even when no active users remain, as long as the mapping exists in the cache. The circular dependency occurs because the cache holds references that block the normal destruction path of the buffer object, while the buffer object's destruction is required to properly clean up the cache entries.
This vulnerability has significant operational impact on systems utilizing Tegra graphics drivers, particularly those implementing GPU memory management through the host1x subsystem. The memory leak resulting from this circular reference can lead to progressive resource exhaustion over time, potentially causing system instability, performance degradation, or complete system hangs in memory-constrained environments. The issue affects any application or driver component that relies on buffer object caching mechanisms within the TegraDRM framework, making it particularly concerning for embedded systems and mobile platforms where memory resources are limited.
The fix addresses this through a fundamental architectural change that introduces weak references from the cache side to buffer objects, eliminating the circular dependency. Instead of allowing pin callbacks to increment the buffer object's reference count directly, the common Host1x code now manages reference counting with special handling for cached references. This approach aligns with established security principles for preventing resource leaks and circular dependencies in kernel memory management systems. The solution also consolidates cache cleanup logic into a dedicated common function within the Host1x subsystem, centralizing the removal of cached mappings during buffer object destruction.
From a cybersecurity perspective, this vulnerability represents a classic example of improper reference counting that could lead to denial-of-service conditions through resource exhaustion. The fix reduces attack surface by ensuring proper memory lifecycle management and prevents potential exploitation scenarios where malicious actors might attempt to exhaust system resources through repeated cache operations. This remediation follows best practices for kernel memory management as outlined in security standards such as the Common Weakness Enumeration (CWE-404) which addresses improper resource management, and aligns with ATT&CK framework techniques related to privilege escalation and resource exhaustion attacks. The implementation change ensures that cached buffer object mappings cannot indefinitely block the destruction of underlying resources, thereby maintaining system stability and preventing potential denial-of-service conditions.
The resolution maintains backward compatibility while strengthening the memory management model through proper weak reference handling. This approach prevents the accumulation of stale references in the cache while preserving all existing functionality for legitimate use cases involving buffer object reuse. The centralized cleanup function ensures consistent behavior across different TegraDRM implementations and reduces the potential for similar issues in related code paths. The fix demonstrates effective kernel security engineering practices that prioritize resource lifecycle management and prevent common pitfalls in concurrent memory management systems.