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.
Published: 2026-10-23
Score: 3.7 Low
EPSS: < 1% Very Low
KEV: No
Impact: Kernel Data Corruption
Action: Apply Patch
AI Analysis

Impact

In the Linux kernel, the BPF flow dissector clamps packet offset values using a 16‑bit maximum derived from the packet length (hlen). When hlen exceeds 65535, the upper bound is truncated before the comparison, which forces both nhoff and thoff to zero even if a BPF program supplies valid values. This incorrect clamping misinterprets the packet structure and can lead to kernel data corruption or unexpected behavior.

Affected Systems

All Linux kernel installations that have not incorporated the patch referenced in the provided commit logs are potentially impacted. The vulnerability resides in the core flow_dissect subsystem, so any kernel version prior to the fix may be affected.

Risk and Exploitability

The CVSS score of 3.7 indicates moderate severity, and the EPSS score of <1% shows a very low likelihood of exploitation in the wild. Because the flaw is only exposed through a BPF flow dissector, an attacker would need to inject malicious BPF code, which typically requires elevated privileges or the ability to load BPF programs. The vulnerability is not listed in the CISA KEV catalog, suggesting that no widely used exploit payload is currently known. If exploited, the kernel may suffer data corruption or other unexpected behavior due to incorrect packet parsing.

Generated by OpenCVE AI on October 29, 2026 at 22:49 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Update the Linux kernel to a version that includes the fix referenced in the commit logs provided.
  • If a kernel update cannot be performed immediately, retrieve the patch from the official kernel repository and apply it manually, then rebuild and install the kernel.
  • Restrict the loading of BPF programs so that only trusted users with the necessary capabilities can do so; disable BPF flow dissectors if they are not required.

Generated by OpenCVE AI on October 29, 2026 at 22:49 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Fri, 30 Oct 2026 13:00:00 +0000


Thu, 29 Oct 2026 21:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-20
CWE-682

Thu, 29 Oct 2026 12:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-681
References
Metrics threat_severity

None

cvssV3_1

{'score': 3.7, 'vector': 'CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L'}

threat_severity

Low


Fri, 23 Oct 2026 20:45:00 +0000

Type Values Removed Values Added
First Time appeared Linux linux
Vendors & Products Linux linux

Fri, 23 Oct 2026 15:30:00 +0000

Type Values Removed Values Added
Weaknesses CWE-20
CWE-682

Fri, 23 Oct 2026 12:30:00 +0000

Type Values Removed Values Added
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.
Title flow_dissector: avoid u16 truncation of hlen in bpf_flow_dissect()
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-10-30T12:40:29.247Z

Reserved: 2026-09-25T10:25:14.382Z

Link: CVE-2026-98950

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-10-23T13:17:16.153

Modified: 2026-10-30T13:21:32.563

Link: CVE-2026-98950

cve-icon Redhat

Severity : Low

Publid Date: 2026-10-23T00:00:00Z

Links: CVE-2026-98950 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-10-29T23:00:06Z

Weaknesses
  • CWE-681

    Incorrect Conversion between Numeric Types