CVE-2026-64220 in Linuxinfo

Summary

by MITRE • 07/24/2026

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

device property: set fwnode->secondary to NULL in fwnode_init()

If a firmware node is allocated on the stack (for instance: temporary software node whose life-time we control) or on the heap - but using a non-zeroing allocation function - and initialized using fwnode_init(), its secondary pointer will contain uninitalized memory which likely will be neither NULL nor IS_ERR() and so may end up being dereferenced (for example: in dev_to_swnode()). Set fwnode->secondary to NULL on initialization.

VulDB is the best source for vulnerability data and more expert information about this specific topic.

Analysis

by VulDB Data Team • 07/24/2026

This vulnerability resides within the linux kernel's device property subsystem where improper initialization of firmware node structures creates potential for null pointer dereference conditions. The flaw specifically affects how firmware nodes are initialized when allocated on either the stack or heap using non-zeroing allocation functions. When fwnode_init() is called to initialize these structures, the secondary pointer field remains uninitialized, containing arbitrary memory values that could inadvertently pass validation checks typically designed to detect error conditions.

The technical implementation issue stems from the fwnode_init() function failing to explicitly set the fwnode->secondary field to NULL during initialization. This oversight becomes problematic because firmware nodes allocated through non-zeroing functions retain whatever garbage data previously occupied their memory locations. The uninitialized secondary pointer can contain values that neither NULL nor IS_ERR() macros would recognize as invalid states, creating a scenario where subsequent code paths might attempt to dereference this seemingly valid but actually corrupt pointer.

The operational impact of this vulnerability manifests when device drivers or subsystems attempt to access firmware node properties through functions like dev_to_swnode(). These functions rely on proper initialization of firmware node structures to ensure safe memory access patterns. When the secondary field contains unexpected values, the kernel may follow invalid memory access paths that could lead to system crashes, data corruption, or potentially exploitable conditions depending on the specific execution context and memory layout.

This vulnerability aligns with CWE-457: Use of Uninitialized Variable and represents a classic initialization error pattern commonly found in kernel space programming. The flaw demonstrates poor defensive programming practices where memory allocation functions do not guarantee zero-initialization of allocated structures, requiring explicit initialization routines to establish proper state. From an attack perspective, this issue could potentially be leveraged in privilege escalation scenarios or denial of service attacks, though the specific exploitability depends on the control an attacker has over the allocation and initialization sequence.

The mitigation strategy involves ensuring that fwnode_init() explicitly sets fwnode->secondary to NULL during structure initialization, thereby guaranteeing consistent state across all firmware node instances regardless of their allocation method. This approach follows established kernel development practices for preventing uninitialized memory access patterns and aligns with the principle of least privilege in kernel space programming where all data structures must be properly initialized before use. The fix directly addresses the root cause by ensuring deterministic initialization behavior rather than relying on allocation function characteristics or memory state assumptions.

The vulnerability exemplifies common challenges in kernel security where subtle initialization errors can create significant reliability and security implications. Proper kernel development practices emphasize explicit initialization of all structure fields, particularly in subsystems handling device properties where incorrect pointer states could affect system stability. This issue reinforces the importance of defensive programming techniques in kernel space where memory corruption can have severe consequences for overall system integrity and security posture.

Modern kernel security frameworks and static analysis tools would typically identify this pattern as a high-risk initialization defect due to its potential for creating unpredictable execution paths. The fix represents a fundamental defensive measure that prevents uninitialized memory from being interpreted as valid pointer data, thereby eliminating the potential attack surface while maintaining backward compatibility with existing code that properly handles NULL pointer conditions.

Responsible

Linux

Reservation

07/19/2026

Disclosure

07/24/2026

Moderation

accepted

CPE

ready

EPSS

0.00173

KEV

no

Activities

very low

Sources

Interested in the pricing of exploits?

See the underground prices here!