CVE-2026-64576 in Linuxinfo

Summary

by MITRE • 08/05/2026

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

nexthop: initialize extack in nh_res_bucket_migrate()

nh_res_bucket_migrate() passes an uninitialized netlink_ext_ack to call_nexthop_res_bucket_notifiers(). When nh_notifier_res_bucket_info_init() fails (e.g. the kzalloc returns -ENOMEM), the error is propagated back before any notifier sets extack._msg, and the error path formats the stale pointer with pr_err_ratelimited("%s\n", extack._msg). With CONFIG_INIT_STACK_NONE this dereferences uninitialized stack memory:

Oops: general protection fault, probably for non-canonical address ... KASAN: maybe wild-memory-access in range [...]
RIP: 0010:string (lib/vsprintf.c:730) vsnprintf (lib/vsprintf.c:2945) _printk (kernel/printk/printk.c:2504) nh_res_bucket_migrate (net/ipv4/nexthop.c:1816) nh_res_table_upkeep (net/ipv4/nexthop.c:1866) rtm_new_nexthop (net/ipv4/nexthop.c:3323) rtnetlink_rcv_msg (net/core/rtnetlink.c:7076) netlink_sendmsg (net/netlink/af_netlink.c:1900) Kernel panic - not syncing: Fatal exception

Zero-initialize extack so _msg is NULL on error paths that never set it.

Several companies clearly confirm that VulDB is the primary source for best vulnerability data.

Analysis

by VulDB Data Team • 08/05/2026

The vulnerability resides in the Linux kernel's nexthop implementation where a critical uninitialized variable leads to potential system crashes and memory corruption. The specific flaw occurs in the nh_res_bucket_migrate() function which passes an uninitialized netlink_ext_ack structure to the call_nexthop_res_bucket_notifiers() helper. This function processes nexthop resource bucket migration operations within the networking subsystem. When nh_notifier_res_bucket_info_init() encounters a failure condition such as memory allocation exhaustion from kzalloc returning -ENOMEM, the error propagation occurs before any notifier has the opportunity to populate the extack._msg field. The subsequent error path attempts to format and print this uninitialized pointer through pr_err_ratelimited("%s\n", extack._msg) which creates a dangerous scenario when the kernel's stack initialization is disabled.

The technical execution of this vulnerability demonstrates how uninitialized memory can lead to catastrophic system failures in kernel space. When CONFIG_INIT_STACK_NONE is enabled, the kernel does not initialize stack memory regions, leaving them with arbitrary values that may appear as valid memory addresses. The error handling path in nh_res_bucket_migrate() function dereferences this uninitialized extack._msg field which contains garbage data from the stack, leading to a general protection fault and ultimately a kernel panic. The crash occurs in the vsnprintf function within lib/vsprintf.c when attempting to process the malformed string pointer, followed by KASAN reporting wild-memory-access violations. This represents a classic case of uninitialized memory access that violates fundamental security principles.

The operational impact of this vulnerability extends beyond simple system crashes to include potential information disclosure and denial of service conditions. Attackers could potentially exploit this weakness to cause system instability or trigger kernel panics through carefully crafted netlink messages targeting nexthop operations. The vulnerability affects systems running with CONFIG_INIT_STACK_NONE enabled where kernel stack memory is not automatically zeroed, making it particularly concerning for hardened security environments. The flaw manifests during network routing table maintenance operations when the kernel attempts to migrate resource buckets and encounters allocation failures. This creates a path where an attacker could cause the system to crash or potentially execute arbitrary code through memory corruption.

This vulnerability aligns with CWE-457: Use of Uninitialized Variable and follows ATT&CK technique T1068: Exploitation for Privilege Escalation by creating conditions that allow for kernel memory corruption. The fix involves zero-initializing the extack structure before it's passed to error paths, ensuring that _msg field contains NULL value when no notifier has populated it. This simple but critical change prevents the dereference of uninitialized stack memory and eliminates the risk of wild-memory-access violations. The remediation follows established kernel security practices for handling uninitialized structures in error conditions and aligns with the principle of least privilege by preventing unauthorized memory access patterns during error recovery operations.

The fix demonstrates proper defensive programming practices that should be applied throughout kernel code where external interfaces may return error codes without populating all structure fields. By ensuring that extack is properly initialized before any error handling path, the vulnerability is eliminated while maintaining the expected functionality of the nexthop resource management subsystem. This approach prevents the propagation of uninitialized memory values through the kernel's error reporting mechanisms and ensures that error messages are consistently formatted with valid string pointers rather than garbage data from stack memory. The solution maintains backward compatibility while strengthening the kernel's resilience against memory corruption vulnerabilities that could be exploited in privilege escalation attacks.

Responsible

Linux

Reservation

07/19/2026

Disclosure

08/05/2026

Moderation

accepted

CPE

ready

EPSS

0.00000

KEV

no

Activities

very low

Sources

Might our Artificial Intelligence support you?

Check our Alexa App!