CVE Catalog

CVE-2026-99043

Low risk· EPSS 7%
Published: Updated: Translated: NVD NIST

Exploitation Probability (EPSS)

Low risk
0.18%

7th percentile - higher than 7% of all known CVEs

Summary

In the Linux kernel, the ice driver mishandles metadata_dst refcount on representor teardown. ice_eswitch_release_repr() uses metadata_dst_free(), which frees memory without checking the dst_entry refcount, while queued packets still hold references.

Risk Assessment

Freeing an object that still has active references can lead to use-after-free, memory corruption, and kernel crash. The issue occurs when a representor is torn down with queued packets.

Recommendation

Update the Linux kernel to a version containing the fix that uses dst_release() instead of metadata_dst_free().

Other vulnerabilities in Linux kernel

See all
Original NVD description (English source)

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.

Vulnerability data from NVD (NIST) · CISA KEV · EPSS