{
  "cveId": "CVE-2026-99112",
  "url": "https://patchblox.com/security/cve/CVE-2026-99112",
  "summary": "CVE-2026-99112 is fixed in linux on 1 platform by DEBIAN-CVE-2026-99112 (version 6.12.115-2), released November 3, 2026. It is not reported as exploited. Patch Radar priority: High.",
  "title": "net/sched: cls_flower: validate mask pointer after nla_next()",
  "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\u0027s 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\u0027s own attributes.  The nla_ok() added by commit c96adff956191 (\u0022cls_flower: call nla_ok() before nla_next()\u0022) 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\u0027s 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-28T11:17:30Z",
  "severity": "Moderate",
  "cvss": 7.1,
  "cvssVector": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H",
  "epss": 0.00132,
  "epssPercentile": 0.02767,
  "priority": "High",
  "priorityTier": 3,
  "exploited": false,
  "vendorExploited": false,
  "disclosed": false,
  "vendorAdvisory": "https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-99112",
  "fixes": [
    {
      "platform": "linux",
      "product": "linux",
      "release": "Debian 13.5 (trixie)",
      "fixedVersion": "6.12.115-2",
      "fix": "DEBIAN-CVE-2026-99112",
      "url": "https://patchblox.com/security/fix/linux/debian-cve-2026-99112",
      "released": "2026-11-03T18:58:21Z"
    }
  ],
  "noFixYet": [],
  "dataAsOf": "2026-11-08T00:53:09Z",
  "attribution": {
    "text": "Data: Patchblox Patch Radar",
    "url": "https://patchblox.com/security/patch-radar",
    "terms": "https://patchblox.com/security/patch-radar/use-the-data"
  }
}