CVE-2026-98950

flow_dissector: avoid u16 truncation of hlen in bpf_flow_dissect()

State
Published
Severity
Not scored
Published
Oct 23, 2026
Updated
Oct 30, 2026
Reserved
Sep 25, 2026

Read the record on cve.org

Description

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.

Scores

The record has no CVSS score.

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • d58e468b1112dcd1d5193c0a89ff9f98b5a3e8b9 to before 46d21495f633e38d40857401504ee51c56ffed2aAffected
  • d58e468b1112dcd1d5193c0a89ff9f98b5a3e8b9 to before 6267f8304cbd9ec9f3f53bd227a733e07131492eAffected
  • d58e468b1112dcd1d5193c0a89ff9f98b5a3e8b9 to before 99c59062172620a0bac4ae8cf37c83bb78772cddAffected
  • d58e468b1112dcd1d5193c0a89ff9f98b5a3e8b9 to before c44c02c930c6583b235a1937c69ff716c4bb4514Affected
  • d58e468b1112dcd1d5193c0a89ff9f98b5a3e8b9 to before 3fb5ad2951a6df92c98f4f06cd70f20c50a2eb2aAffected
  • d58e468b1112dcd1d5193c0a89ff9f98b5a3e8b9 to before cc18eb0e9941162c03f03f411ed7f6c339d91fa0Affected
  • d58e468b1112dcd1d5193c0a89ff9f98b5a3e8b9 to before 61b43a51a55929ec040bee3ea51af2121b956d05Affected
  • d58e468b1112dcd1d5193c0a89ff9f98b5a3e8b9 to before f202578efc738b883cfa04889eb97328914265a7Affected
LinuxLinux
  • 4.20Affected
  • before 4.20Not affected
  • 5.10.273 through 5.10.*Not affected
  • 5.15.224 through 5.15.*Not affected
  • 6.1.191 through 6.1.*Not affected
  • 6.6.160 through 6.6.*Not affected
  • 6.12.113 through 6.12.*Not affected
  • 6.18.57 through 6.18.*Not affected
  • 7.2.11 through 7.2.*Not affected
  • 7.3 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.