CVE-2026-72444
Received Received - Intake

Memory Corruption in Linux Kernel Flow Dissector

Vulnerability report for CVE-2026-72444, including description, CVSS score, EPSS score, affected products, exploitability, helpful resources, and attack-flow context.

Publication date: 2026-08-15

Last updated on: 2026-08-15

Assigner: kernel.org

Description

In the Linux kernel, the following vulnerability has been resolved: flow_dissector: check device type before reading ETH_ADDRS __skb_flow_dissect() unconditionally reads 12 bytes from eth_hdr(skb) when FLOW_DISSECTOR_KEY_ETH_ADDRS is requested. This assumes the skb has a valid Ethernet header at mac_header, which is not always the case. The problem can be triggered by: 1. Creating a TUN device in L3 mode (IFF_TUN, hard_header_len=0) 2. Attaching a multiq qdisc with a flower filter matching on eth_src 3. Sending a packet through AF_PACKET Since TUN in L3 mode has no link-layer header, mac_header points to the L3 data area. The flow dissector reads 12 bytes of uninitialized skb memory, which then propagates through fl_set_masked_key() and is used as a rhashtable lookup key in __fl_lookup(), as reported by KMSAN. Rejecting the filter in the control path (at tc filter add time) is not feasible because TC filter blocks can be shared between arbitrary devices -- a filter installed on an Ethernet device may later classify packets on a headerless device through a shared block. The device association is not fixed at filter creation time. Fix this by gating the memcpy on dev->type == ARPHRD_ETHER, which ensures only true Ethernet-framed packets have their addresses read. This is more precise than the previous hard_header_len >= 12 check, which would incorrectly pass for non-Ethernet link types like IPoIB (ARPHRD_INFINIBAND, hard_header_len=24) and FDDI (hard_header_len=21) whose L2 headers are not in Ethernet format. Additionally check skb_mac_header_was_set() to guard against the pathological case where mac_header is the unset sentinel (~0U), which would cause eth_hdr() to return a wild pointer. For the act_mirred redirect case (Ethernet packet redirected to a non-Ethernet device sharing a TC block), zeroing the key is the correct behavior: the packet is now being classified on the target device, where Ethernet address matching is not semantically meaningful. Note: on non-Ethernet devices, the zeroed key will match a filter configured with all-zero MAC addresses. This is an improvement over the previous behavior where uninitialized memory could randomly match any filter.

CVSS Scores

EPSS Scores

Probability:
Percentile:

Meta Information

Published
2026-08-15
Last Modified
2026-08-15
Generated
2026-08-15
AI Q&A
2026-08-15
EPSS Evaluated
N/A
NVD
EUVD

Affected Vendors & Products

Showing 1 associated CPE
Vendor Product Version / Range
linux linux_kernel *

Helpful Resources

Exploitability

CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-UNKNOWN

Attack-Flow Graph

AI Quick Actions

Instant insights powered by AI
Executive Summary

This vulnerability in the Linux kernel involves the flow dissector reading uninitialized memory when processing packets. It occurs when a TUN device in L3 mode (no Ethernet header) is used with a multiq qdisc and flower filter matching on eth_src. The flow dissector incorrectly reads 12 bytes from the packet, leading to potential memory corruption or security issues.

Detection Guidance

This vulnerability is specific to Linux kernel behavior with TUN devices and flow dissectors. Detection requires checking kernel logs for KMSAN or similar memory sanitizer reports indicating uninitialized memory reads in flow dissection. Monitor for crashes or unexpected behavior when using TUN devices with multiq qdisc and flower filters.

Impact Analysis

This vulnerability could allow attackers to trigger memory corruption or cause denial-of-service conditions by sending specially crafted packets through AF_PACKET. It may also lead to unauthorized access or data leaks if exploited to manipulate packet classification or network filtering.

Mitigation Strategies

Apply the Linux kernel patch that adds device type checks before reading Ethernet addresses. Update to a kernel version containing the fix. Avoid using TUN devices in L3 mode with multiq qdisc and flower filters matching on eth_src until patched.

Chat Assistant

Ask questions about this CVE
Hi! I’m here to help you understand CVE-2026-72444. Ask me anything about the vulnerability, its impact, or mitigation strategies.
0/70

EPSS Chart