CVE Catalog

CVE-2026-98950

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, bpf_flow_dissect() clamped offsets returned by the BPF program using clamp_t(u16, ..., hlen). When hlen exceeded 65535, the upper bound was truncated before comparison, potentially forcing nhoff and thoff to zero despite sane values returned by the program.

Risk Assessment

Incorrect packet processing by the BPF flow dissector may lead to misclassification of traffic and potential bypass of filtering mechanisms or network policies.

Recommendation

Update the Linux kernel to a version containing the fix that caps hlen to U16_MAX before clamping in bpf_flow_dissect().

Other vulnerabilities in Linux kernel

See all
Original NVD description (English source)

In the Linux kernel, the following vulnerability has been resolved: flow_dissector: avoid u16 truncation of hlen in bpf_flow_dissect() bpf_flow_dissect() sanitizes the offsets returned by the BPF program with clamp_t(u16, ..., hlen). If hlen is bigger than 65535, the upper bound is truncated before the comparison. For instance, with hlen == 65536, both nhoff and thoff are forced to zero, even if the program returned sane values. This is the same class of bug as the one fixed in commit 99bda1ecbd56 ("flow_dissector: avoid u16 truncation of skb->len when computing thoff"). That fix does not cover the BPF path, because __skb_flow_dissect() returns early when a BPF flow dissector handles the packet. struct bpf_flow_keys stores nhoff and thoff as u16, so cap hlen to U16_MAX before clamping. Found by sashiko while reviewing the commit above.

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