Description
In the Linux kernel, the following vulnerability has been resolved:

net/sched: cls_flower: validate mask pointer after nla_next()

fl_set_enc_opt() iterates the key's nested tunnel-option attributes
with nla_for_each_attr() while advancing a single mask pointer via
nla_next() at the bottom of each loop, so the mask cursor is driven
by the number of key attributes rather than by the mask's own
attributes. The nla_ok() added by commit c96adff956191 ("cls_flower:
call nla_ok() before nla_next()") only validates the mask pointer
that was just consumed; the pointer produced by nla_next() is used by
the next iteration (fl_set_geneve_opt() and siblings) without any
validation.

The mask's nested attributes are validated with NL_VALIDATE_LIBERAL,
which merely warns on trailing bytes that do not form a complete
attribute. A mask carrying one valid attribute plus 1-3 residue
bytes (or a non-aligned attribute length making msk_depth negative)
therefore reaches the next iteration with msk_depth != 0, so neither
the !msk_depth check in fl_set_enc_opt() nor the !depth check in the
per-type helpers fires. nla_type() then reads past the mask payload
and nla_parse_nested_deprecated() iterates with an nla_len taken
from those bytes, reading well beyond the mask attribute (KASAN:
slab-out-of-bounds read in __nla_validate_parse from fl_change()).

Validate the advanced mask pointer as well: when the mask is not
legitimately exhausted (msk_depth != 0) and the new pointer fails
nla_ok(), reject the filter with -EINVAL. An exactly exhausted mask
still skips the check, preserving exact-match behaviour for the
remaining key attributes.
Published: 2026-10-28
Score: n/a
EPSS: n/a
KEV: No
Impact: Kernel out‑of‑bounds read potentially exposing sensitive data
Action: Patch Kernel
AI Analysis

Impact

The vulnerability is caused by improper validation of a mask pointer during nested attribute parsing in the class flower traffic‑control filter of the Linux kernel. The parser advances a mask pointer with nla_next() without re‑validating it, allowing the loop to dereference bytes beyond the true end of the mask payload. A malformed attribute can trigger a kernel out‑of‑bounds read detected by KASAN, which may in turn cause a kernel panic or leak information from memory. No direct evidence of execution or denial of service is provided, but the memory corruption could enable further exploitation if combined with other vulnerabilities.

Affected Systems

All Linux kernel releases vulnerable before the commit that added the missing validation, which is present in all current stable kernel releases after that change. The issue affects the cls_flower component of the Linux traffic‑control subsystem and thus any system that uses network classification filters. The impact is limited to devices running a Linux kernel with the vulnerable traffic‑control code compiled into the kernel image or modules.

Risk and Exploitability

The severity metric is not listed, and the EPSS score is not available, but the vulnerability is not included in the CISA KEV catalog. The likely attack vector involves injecting a crafted filter packet through the traffic‑control subsystem, which normally requires privileged access to configure filters. Because the flaw is an out‑of‑bounds read rather than a write, exploitation may be limited to information disclosure or denial of service without immediate code execution. Given the lack of publicly disclosed exploits, the risk remains moderate but should be mitigated promptly.

Generated by OpenCVE AI on October 28, 2026 at 12:45 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Update the Linux kernel to a version that includes the patch for the cls_flower mask pointer validation.
  • If an immediate kernel upgrade is not possible, consider disabling the cls_flower traffic‑control module or removing the traffic‑control filter that relies on it.
  • Continuously monitor the system logs for KASAN messages or kernel OOPS entries that could indicate exploitation attempts.

Generated by OpenCVE AI on October 28, 2026 at 12:45 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Wed, 28 Oct 2026 13:00:00 +0000

Type Values Removed Values Added
Weaknesses CWE-119
CWE-788

Wed, 28 Oct 2026 12:45:00 +0000

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

Wed, 28 Oct 2026 10:45:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: net/sched: cls_flower: validate mask pointer after nla_next() fl_set_enc_opt() iterates the key's nested tunnel-option attributes with nla_for_each_attr() while advancing a single mask pointer via nla_next() at the bottom of each loop, so the mask cursor is driven by the number of key attributes rather than by the mask's own attributes. The nla_ok() added by commit c96adff956191 ("cls_flower: call nla_ok() before nla_next()") only validates the mask pointer that was just consumed; the pointer produced by nla_next() is used by the next iteration (fl_set_geneve_opt() and siblings) without any validation. The mask's nested attributes are validated with NL_VALIDATE_LIBERAL, which merely warns on trailing bytes that do not form a complete attribute. A mask carrying one valid attribute plus 1-3 residue bytes (or a non-aligned attribute length making msk_depth negative) therefore reaches the next iteration with msk_depth != 0, so neither the !msk_depth check in fl_set_enc_opt() nor the !depth check in the per-type helpers fires. nla_type() then reads past the mask payload and nla_parse_nested_deprecated() iterates with an nla_len taken from those bytes, reading well beyond the mask attribute (KASAN: slab-out-of-bounds read in __nla_validate_parse from fl_change()). Validate the advanced mask pointer as well: when the mask is not legitimately exhausted (msk_depth != 0) and the new pointer fails nla_ok(), reject the filter with -EINVAL. An exactly exhausted mask still skips the check, preserving exact-match behaviour for the remaining key attributes.
Title net/sched: cls_flower: validate mask pointer after nla_next()
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-28T10:34:29.881Z

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

Link: CVE-2026-99112

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-10-28T11:17:30.640

Modified: 2026-10-28T11:17:30.640

Link: CVE-2026-99112

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-10-28T12:45:16Z

Weaknesses
  • CWE-119

    Improper Restriction of Operations within the Bounds of a Memory Buffer

  • CWE-788

    Access of Memory Location After End of Buffer