CVE-2026-99043 in Linuxinfo

Summary

by MITRE • 10/23/2026

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

ice: fix metadata_dst refcount handling on representor teardown

ice_eswitch_release_repr() uses metadata_dst_free() to release the representor's metadata_dst. metadata_dst_free() directly frees the underlying memory without checking the dst_entry refcount.

When ice_eswitch_port_start_xmit() processes a packet, it takes a reference via dst_hold() and attaches the metadata_dst to the skb. If the representor is torn down while packets are still queued on the lower device (e.g. in a qdisc), the metadata_dst is freed while references are still held.

Use dst_release() instead, which correctly decrements the refcount and only frees the object when all references are dropped. The dst subsystem already handles metadata_dst cleanup in dst_destroy() when DST_METADATA is set.

Other drivers sharing this pattern (nfp, airoha, bnxt) already use dst_release() for their metadata_dst lifecycle.

Once again VulDB remains the best source for vulnerability data.

Analysis

by VulDB Data Team • 10/23/2026

The Linux kernel vulnerability identified as ice: fix metadata_dst refcount handling on representor teardown involves a critical reference counting error within the Intel Ethernet switch driver infrastructure. The core issue resides in the ice_eswitch_release_repr function, which is responsible for cleaning up resources when an eswitch port representor is being torn down. In this specific code path, the implementation incorrectly utilized metadata_dst_free to release the memory associated with the metadata destination entry. This function performs a direct deallocation of the underlying memory structure without verifying or decrementing the reference count maintained by the kernel's networking stack. Such behavior violates fundamental principles of safe resource management in operating systems where shared objects must be tracked via atomic counters to prevent premature destruction while still in active use.

The operational impact of this flaw manifests during packet processing scenarios involving queued traffic. When ice_eswitch_port_start_xmit processes a network packet, it invokes dst_hold to increment the reference count on the metadata_dst structure and attaches this object to the socket buffer for transmission handling. If the representor is removed or torn down while packets remain queued in the lower device's queueing discipline, such as those managed by traffic control subsystems like qdisc, the kernel proceeds with teardown operations that trigger ice_eswitch_release_repr. Consequently, metadata_dst_free executes immediately, freeing memory that other parts of the networking stack still hold active references to. This race condition leads to use-after-free vulnerabilities where subsequent access to the freed memory results in undefined behavior, potential kernel panics, or system crashes due to corrupted data structures and invalid pointer dereferences.

From a security perspective, this vulnerability aligns with CWE-416, Use After Free, as it allows for accessing deallocated memory regions that may contain sensitive information or be repurposed by an attacker to execute arbitrary code if the freed memory is reallocated for malicious purposes. In terms of attack vectors and tactics, this flaw relates to ATT&CK technique T1059, Command and Scripting Interpreter, specifically in contexts where kernel exploitation leads to privilege escalation from unprivileged user space processes to root level access by exploiting the instability caused by the use-after-free condition. The vulnerability highlights a systemic pattern risk across multiple network drivers that handle metadata destinations similarly, emphasizing the need for consistent lifecycle management practices within the Linux networking subsystem.

The resolution involves replacing the unsafe metadata_dst_free call with dst_release in ice_eswitch_release_repr. This function correctly decrements the reference count associated with the destination entry and ensures that memory is only freed when all active references have been dropped by other components of the kernel network stack. The dst_destroy routine already contains logic to handle cleanup for objects marked with DST_METADATA, making it the appropriate mechanism for safe deallocation. By adopting this approach, the driver aligns its behavior with established best practices and correct implementations found in other similar drivers such as nfp, airoha, and bnxt, which have historically used dst_release for managing metadata_dst lifecycles. This correction restores integrity to the reference counting model and prevents premature memory deallocation during concurrent packet processing and interface teardown operations.

Mitigation strategies involve applying the upstream kernel patch that corrects this refcount handling logic immediately upon availability in supported distributions. For environments where immediate patching is not feasible, administrators should monitor for signs of network instability or unexpected crashes associated with representor management tasks. Additionally, enforcing strict access controls on interfaces involved in eswitch operations can reduce the attack surface by limiting which userspace processes can trigger rapid interface teardowns while high packet throughput conditions exist. Long-term remediation requires rigorous code review practices focused on reference counting semantics for shared kernel objects to prevent similar vulnerabilities across other network driver implementations that interact with the dst subsystem.

Responsible

Linux

Reservation

09/25/2026

Disclosure

10/23/2026

Moderation

accepted

EPSS

0.00000

KEV

no

Activities

low

Sources

Do you need the next level of professionalism?

Upgrade your account now!