CVE-2026-74739 (GCVE-0-2026-74739)

Vulnerability from cvelistv5 – Published: 2026-08-26 14:36 – Updated: 2026-08-27 05:01
VLAI
Title
net/sched: cls_u32: skip hash tables in u32_bind_class()
Summary
In the Linux kernel, the following vulnerability has been resolved: net/sched: cls_u32: skip hash tables in u32_bind_class() u32_walk() enumerates both struct tc_u_hnode and struct tc_u_knode through the walker callback. u32_bind_class() unconditionally casts the passed fh to tc_u_knode and accesses &n->res, so when fh is actually a tc_u_hnode, which has no tcf_result member, this results in a slab-out-of-bounds read of res->classid in tc_cls_bind_class(). The issue can be reproduced with the following commands: tc qdisc add dev lo root handle 1: hfsc tc class add dev lo parent 1: classid 1:1 hfsc sc rate 1000kbit tc filter add dev lo parent 1:1 protocol ip prio 1 u32 match u32 0 0 flowid 1:1 tc class add dev lo parent 1: classid 1:2 hfsc sc rate 2000kbit Fix this by skipping hash tables via the TC_U32_KEY(handle) check.
Impacted products
Vendor Product Version CPE status
Linux Linux Affected: 07d79fc7d94e3f884b8b1c95aa615b202bb5e4c1 , < ec5f3005586a785689fd568361b0c5925cb1548b (git)
Affected: 07d79fc7d94e3f884b8b1c95aa615b202bb5e4c1 , < 19d114b93c94bdef70496f26685c2a6b242f41b3 (git)
Affected: 07d79fc7d94e3f884b8b1c95aa615b202bb5e4c1 , < 594a064d603202b9ee21e07679d854e5c1750cc4 (git)
Affected: 07d79fc7d94e3f884b8b1c95aa615b202bb5e4c1 , < 31f26a95eeee926946809ac456c61a3217936a62 (git)
Affected: 07d79fc7d94e3f884b8b1c95aa615b202bb5e4c1 , < e71f8e9ed6f311410b14741f6012afe01869c0fa (git)
Affected: 07d79fc7d94e3f884b8b1c95aa615b202bb5e4c1 , < 6d3724e616faf952c3adcf8414fc21a828ef3709 (git)
guessed Create a notification for this product.
Linux Linux Affected: 4.14
Unaffected: 0 , < 4.14 (semver)
Unaffected: 6.1.184 , ≤ 6.1.* (semver)
Unaffected: 6.6.153 , ≤ 6.6.* (semver)
Unaffected: 6.12.105 , ≤ 6.12.* (semver)
Unaffected: 6.18.46 , ≤ 6.18.* (semver)
Unaffected: 7.1.10 , ≤ 7.1.* (semver)
Unaffected: 7.2 , ≤ * (original_commit_for_fix)
guessed Create a notification for this product.
Show details on NVD website

{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "net/sched/cls_u32.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "ec5f3005586a785689fd568361b0c5925cb1548b",
              "status": "affected",
              "version": "07d79fc7d94e3f884b8b1c95aa615b202bb5e4c1",
              "versionType": "git"
            },
            {
              "lessThan": "19d114b93c94bdef70496f26685c2a6b242f41b3",
              "status": "affected",
              "version": "07d79fc7d94e3f884b8b1c95aa615b202bb5e4c1",
              "versionType": "git"
            },
            {
              "lessThan": "594a064d603202b9ee21e07679d854e5c1750cc4",
              "status": "affected",
              "version": "07d79fc7d94e3f884b8b1c95aa615b202bb5e4c1",
              "versionType": "git"
            },
            {
              "lessThan": "31f26a95eeee926946809ac456c61a3217936a62",
              "status": "affected",
              "version": "07d79fc7d94e3f884b8b1c95aa615b202bb5e4c1",
              "versionType": "git"
            },
            {
              "lessThan": "e71f8e9ed6f311410b14741f6012afe01869c0fa",
              "status": "affected",
              "version": "07d79fc7d94e3f884b8b1c95aa615b202bb5e4c1",
              "versionType": "git"
            },
            {
              "lessThan": "6d3724e616faf952c3adcf8414fc21a828ef3709",
              "status": "affected",
              "version": "07d79fc7d94e3f884b8b1c95aa615b202bb5e4c1",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "net/sched/cls_u32.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "4.14"
            },
            {
              "lessThan": "4.14",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.1.*",
              "status": "unaffected",
              "version": "6.1.184",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.6.*",
              "status": "unaffected",
              "version": "6.6.153",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.12.*",
              "status": "unaffected",
              "version": "6.12.105",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.18.*",
              "status": "unaffected",
              "version": "6.18.46",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "7.1.*",
              "status": "unaffected",
              "version": "7.1.10",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "7.2",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.1.184",
                  "versionStartIncluding": "4.14",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.6.153",
                  "versionStartIncluding": "4.14",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.12.105",
                  "versionStartIncluding": "4.14",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.18.46",
                  "versionStartIncluding": "4.14",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.1.10",
                  "versionStartIncluding": "4.14",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.2",
                  "versionStartIncluding": "4.14",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet/sched: cls_u32: skip hash tables in u32_bind_class()\n\nu32_walk() enumerates both struct tc_u_hnode and struct tc_u_knode\nthrough the walker callback. u32_bind_class() unconditionally casts the\npassed fh to tc_u_knode and accesses \u0026n-\u003eres, so when fh is actually a\ntc_u_hnode, which has no tcf_result member, this results in a\nslab-out-of-bounds read of res-\u003eclassid in tc_cls_bind_class().\n\nThe issue can be reproduced with the following commands:\n\n    tc qdisc add dev lo root handle 1: hfsc\n    tc class add dev lo parent 1: classid 1:1 hfsc sc rate 1000kbit\n    tc filter add dev lo parent 1:1 protocol ip prio 1 u32 match u32 0 0 flowid 1:1\n    tc class add dev lo parent 1: classid 1:2 hfsc sc rate 2000kbit\n\nFix this by skipping hash tables via the TC_U32_KEY(handle) check."
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "baseScore": 7.8,
            "baseSeverity": "HIGH",
            "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
            "version": "3.1"
          },
          "scenarios": [
            {
              "lang": "en",
              "value": "AV:L - The bug is reached only via RTM_NEWTCLASS rtnetlink (tc class add) in __tc_ctl_tclass(), which calls tc_bind_tclass() to walk u32 filters; per kernel CNA guidance, tc/qdisc/netlink classifier configuration is Local, not remotely reachable by packets.\nAC:L - The reproducer is deterministic: install a u32 filter with flowid, then add another tc class so reverse binding walks hash nodes; the attacker controls every netlink step and needs no race or uncontrollable victim state.\nPR:L - RTM_NEWTCLASS requires CAP_NET_ADMIN enforced by netlink_net_capable() in rtnetlink; this capability is obtainable by unprivileged users in a user+network namespace (unshare -Urn) or containers granted NET_ADMIN, not init-namespace root only.\nUI:N - Exploitation requires only the attacker\u0027s own tc/netlink operations (qdisc, filter, class add) inside a namespace they control; no separate victim action such as opening files or mounting media is needed.\nS:U - Impact is kernel slab memory read and possible adjacent-slab corruption during tc class binding within the same host kernel; this is standard local kernel compromise, not VM escape, IOMMU bypass, or another cross-authority boundary.\nC:H - u32_bind_class() casts tc_u_hnode to tc_u_knode and reads \u0026n-\u003eres.classid past the hnode allocation in tc_cls_bind_class(); per CNA guidance, slab out-of-bounds reads of kernel memory warrant High confidentiality impact.\nI:H - If the out-of-bounds classid read matches the newly created class, tc_cls_bind_class() calls __tcf_bind_filter(), which xchg-writes to \u0026r-\u003eclass at the bogus offset, enabling adjacent slab corruption and potential control-flow hijack per memory-corruption guidance.\nA:H - The slab out-of-bounds access is reported as a KASAN violation on trigger, and mistaken reverse binding can corrupt adjacent kernel objects leading to oops/panic during later tc operations; per CNA guidance, kernel crashes and memory corruption score Availability High."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-27T05:01:00.695Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/ec5f3005586a785689fd568361b0c5925cb1548b"
        },
        {
          "url": "https://git.kernel.org/stable/c/19d114b93c94bdef70496f26685c2a6b242f41b3"
        },
        {
          "url": "https://git.kernel.org/stable/c/594a064d603202b9ee21e07679d854e5c1750cc4"
        },
        {
          "url": "https://git.kernel.org/stable/c/31f26a95eeee926946809ac456c61a3217936a62"
        },
        {
          "url": "https://git.kernel.org/stable/c/e71f8e9ed6f311410b14741f6012afe01869c0fa"
        },
        {
          "url": "https://git.kernel.org/stable/c/6d3724e616faf952c3adcf8414fc21a828ef3709"
        }
      ],
      "title": "net/sched: cls_u32: skip hash tables in u32_bind_class()",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2026-74739",
    "datePublished": "2026-08-26T14:36:51.746Z",
    "dateReserved": "2026-08-15T05:44:03.930Z",
    "dateUpdated": "2026-08-27T05:01:00.695Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2026-74739",
      "date": "2026-09-21",
      "epss": "0.00138",
      "percentile": "0.03584"
    },
    "microsoft_vex": {
      "current_release_date": "2026-08-27T01:05:18.000Z",
      "cve": "CVE-2026-74739",
      "id": "msrc_CVE-2026-74739",
      "initial_release_date": "2026-08-27T01:05:18.000Z",
      "product_status:known_affected": "1",
      "source": "Microsoft CSAF VEX",
      "status": "final",
      "title": "net/sched: cls_u32: skip hash tables in u32_bind_class()",
      "url": "https://msrc.microsoft.com/csaf/vex/2026/msrc_cve-2026-74739.json",
      "version": "1"
    },
    "nvd": {
      "cve": {
        "affected": [
          {
            "affectedData": [
              {
                "defaultStatus": "unaffected",
                "product": "Linux",
                "programFiles": [
                  "net/sched/cls_u32.c"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "lessThan": "ec5f3005586a785689fd568361b0c5925cb1548b",
                    "status": "affected",
                    "version": "07d79fc7d94e3f884b8b1c95aa615b202bb5e4c1",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "19d114b93c94bdef70496f26685c2a6b242f41b3",
                    "status": "affected",
                    "version": "07d79fc7d94e3f884b8b1c95aa615b202bb5e4c1",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "594a064d603202b9ee21e07679d854e5c1750cc4",
                    "status": "affected",
                    "version": "07d79fc7d94e3f884b8b1c95aa615b202bb5e4c1",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "31f26a95eeee926946809ac456c61a3217936a62",
                    "status": "affected",
                    "version": "07d79fc7d94e3f884b8b1c95aa615b202bb5e4c1",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "e71f8e9ed6f311410b14741f6012afe01869c0fa",
                    "status": "affected",
                    "version": "07d79fc7d94e3f884b8b1c95aa615b202bb5e4c1",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "6d3724e616faf952c3adcf8414fc21a828ef3709",
                    "status": "affected",
                    "version": "07d79fc7d94e3f884b8b1c95aa615b202bb5e4c1",
                    "versionType": "git"
                  }
                ]
              },
              {
                "defaultStatus": "affected",
                "product": "Linux",
                "programFiles": [
                  "net/sched/cls_u32.c"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "status": "affected",
                    "version": "4.14"
                  },
                  {
                    "lessThan": "4.14",
                    "status": "unaffected",
                    "version": "0",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "6.1.*",
                    "status": "unaffected",
                    "version": "6.1.184",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "6.6.*",
                    "status": "unaffected",
                    "version": "6.6.153",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "6.12.*",
                    "status": "unaffected",
                    "version": "6.12.105",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "6.18.*",
                    "status": "unaffected",
                    "version": "6.18.46",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "7.1.*",
                    "status": "unaffected",
                    "version": "7.1.10",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "*",
                    "status": "unaffected",
                    "version": "7.2",
                    "versionType": "original_commit_for_fix"
                  }
                ]
              }
            ],
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
          }
        ],
        "cveTags": [],
        "descriptions": [
          {
            "lang": "en",
            "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet/sched: cls_u32: skip hash tables in u32_bind_class()\n\nu32_walk() enumerates both struct tc_u_hnode and struct tc_u_knode\nthrough the walker callback. u32_bind_class() unconditionally casts the\npassed fh to tc_u_knode and accesses \u0026n-\u003eres, so when fh is actually a\ntc_u_hnode, which has no tcf_result member, this results in a\nslab-out-of-bounds read of res-\u003eclassid in tc_cls_bind_class().\n\nThe issue can be reproduced with the following commands:\n\n    tc qdisc add dev lo root handle 1: hfsc\n    tc class add dev lo parent 1: classid 1:1 hfsc sc rate 1000kbit\n    tc filter add dev lo parent 1:1 protocol ip prio 1 u32 match u32 0 0 flowid 1:1\n    tc class add dev lo parent 1: classid 1:2 hfsc sc rate 2000kbit\n\nFix this by skipping hash tables via the TC_U32_KEY(handle) check."
          }
        ],
        "id": "CVE-2026-74739",
        "lastModified": "2026-08-27T06:17:23.220",
        "metrics": {
          "cvssMetricV31": [
            {
              "cvssData": {
                "attackComplexity": "LOW",
                "attackVector": "LOCAL",
                "availabilityImpact": "HIGH",
                "baseScore": 7.8,
                "baseSeverity": "HIGH",
                "confidentialityImpact": "HIGH",
                "integrityImpact": "HIGH",
                "privilegesRequired": "LOW",
                "scope": "UNCHANGED",
                "userInteraction": "NONE",
                "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
                "version": "3.1"
              },
              "exploitabilityScore": 1.8,
              "impactScore": 5.9,
              "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
              "type": "Secondary"
            }
          ]
        },
        "published": "2026-08-26T15:16:52.603",
        "references": [
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/19d114b93c94bdef70496f26685c2a6b242f41b3"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/31f26a95eeee926946809ac456c61a3217936a62"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/594a064d603202b9ee21e07679d854e5c1750cc4"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/6d3724e616faf952c3adcf8414fc21a828ef3709"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/e71f8e9ed6f311410b14741f6012afe01869c0fa"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/ec5f3005586a785689fd568361b0c5925cb1548b"
          }
        ],
        "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "vulnStatus": "Received"
      }
    },
    "redhat_vex": {
      "aggregate_severity": "Moderate",
      "current_release_date": "2026-08-27T06:33:16+00:00",
      "cve": "CVE-2026-74739",
      "id": "CVE-2026-74739",
      "initial_release_date": "2026-08-26T00:00:00+00:00",
      "product_status:known_affected": "274",
      "source": "Red Hat CSAF VEX",
      "status": "final",
      "title": "kernel: net/sched: cls_u32: skip hash tables in u32_bind_class()",
      "url": "https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-74739.json",
      "version": "3"
    },
    "suse_vex": {
      "aggregate_severity": "moderate",
      "current_release_date": "2026-09-15T01:15:26Z",
      "cve": "CVE-2026-74739",
      "id": "CVE-2026-74739",
      "initial_release_date": "2026-08-27T00:21:29Z",
      "product_status:known_affected": "349",
      "product_status:known_not_affected": "4",
      "source": "SUSE CSAF VEX",
      "status": "interim",
      "title": "SUSE CVE CVE-2026-74739",
      "url": "https://ftp.suse.com/pub/projects/security/csaf-vex/cve-2026-74739.json",
      "version": "6"
    }
  }
}



Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Forecast uses a logistic model when the trend is rising, or an exponential decay model when the trend is falling. Fitted via linearized least squares.

Sightings

Author Source Type Date Other

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or observed by the user.
  • Confirmed: The vulnerability has been validated from an analyst's perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
  • Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
  • Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
  • Not confirmed: The user expressed doubt about the validity of the vulnerability.
  • Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.

Loading…

Detection rules are retrieved from Rulezet.

Loading…

Loading…

Related by attack behaviour

Vulnerabilities whose description is nearest to this one in the vector space of the CIRCL/vulnerability-attack-technique-biencoder model. This is a similarity search over the bi-encoder space (plain cosine), not a classification, and it has no measured accuracy.


Loading…