PatchSiren

PatchSiren cyber security CVE debrief

CVE-2026-98104 Linux CVE debrief

A vulnerability in the Linux kernel's net/sched: cls_u32 has been resolved. The vulnerability arises from the gen_new_kid() function falling back to returning max (htid | 0xFFF) when both idr_alloc_u32() ranges are full, instead of reporting an error. This leads to duplicate handles being inserted into the hash table, breaking handle uniqueness within the table's node ID space.

Vendor
Linux
Product
Unknown
CVSS
Unknown
CISA KEV
Not listed in stored evidence
Original CVE published
2026-09-25
Original CVE updated
2026-09-25
Advisory published
2026-09-25
Advisory updated
2026-09-25

Who should care

System administrators and security teams responsible for managing Linux kernel-based systems should assess their exposure and verify that the fix has been applied. This includes reviewing system configurations, monitoring for potential exploitation attempts, and ensuring that compensating controls are in place for exposed systems.

Why it matters

The CVE-2026-98104 vulnerability in the Linux kernel's net/sched: cls_u32 can lead to duplicate handles being inserted into the hash table, potentially causing unexpected behavior or security issues. System administrators and security teams should assess their exposure and verify that the fix has been applied.

  • Duplicate handles can be inserted into the hash table, potentially leading to unexpected behavior or security issues.
  • The vulnerability can be exploited by an attacker with CAP_NET_ADMIN privileges in a namespace.
  • Verification of the Linux kernel version and patch application is necessary to prevent potential exploitation.

Technical summary

The vulnerability arises from the gen_new_kid() function falling back to returning max (htid | 0xFFF) when both idr_alloc_u32() ranges are full, instead of reporting an error. This leads to duplicate handles being inserted into the hash table, breaking handle uniqueness within the table's node ID space. The handle was never reserved in ht->handle_idr, so every later error path that does idr_remove(&ht->handle_idr, handle) removes the reservation of a different, live knode, which is then reused — one failed add compounds into further duplicates. The 4095 limit is per (table, bucket) — ht->handle_idr is per hash table and the range is derived from htid (bucketid), so a table with divisor 256 can legitimately hold

Defensive priority

Medium

Recommended defensive actions

  • Review and apply the provided patches to ensure the vulnerability is resolved.
  • Verify that the Linux kernel has been updated to a version that includes the fix.
  • Monitor network traffic and system logs for potential exploitation attempts.
  • Check relevant monitoring, detection, and logs for exposed assets that need extra review.
  • Track exceptions, retest remediated assets, and close the item only after evidence is documented.
  • Review compensating controls for exposed systems while remediation is scheduled and verified.
  • Confirm whether affected product deployments exist in managed environments and assign an owner for follow-up.

Evidence notes

The vulnerability was introduced in the Linux kernel and has been resolved. The conditions to recreate the bug involve creating a clsact qdisc on a device, adding 4095 u32 filters with auto-generated handles to fill the node ID space for the root hash table, and then adding a 4096th auto-handle filter to trigger the duplicate handle.

Sources and references

Verified primary and authoritative sources

  • CVE-2026-98104 CVE Program record

    Publisher, destination, and source semantics verified

    URL: https://www.cve.org/CVERecord?id=CVE-2026-98104

    CVE Program - Official CVE Program record with source-provided CVE metadata.

  • CVE-2026-98104 NVD vulnerability detail

    Publisher, destination, and source semantics verified

    URL: https://nvd.nist.gov/vuln/detail/CVE-2026-98104

    NIST National Vulnerability Database - Official NIST NVD detail page and source-specific vulnerability assessment.

Supplemental references

  • Source reference

    Unverified legacy reference

    URL: https://git.kernel.org/stable/c/6890e28840bae4f6805e8de981c4ec8e12a4e064

    416baaa9-dc9f-4396-8d5f-8c081fb06d67

  • Source reference

    Unverified legacy reference

    URL: https://git.kernel.org/stable/c/d7e7e98d23f42a92d9ab7e36302bd96bd9b33b5f

    416baaa9-dc9f-4396-8d5f-8c081fb06d67

  • Source reference

    Unverified legacy reference

    URL: https://git.kernel.org/stable/c/f594f04268d01c5fdc975f3f51fc219ea2159ac6

    416baaa9-dc9f-4396-8d5f-8c081fb06d67

  • Source reference

    Unverified legacy reference

    URL: https://git.kernel.org/stable/c/feab9261b537df4ebb8350e4779bc185373059fd

    416baaa9-dc9f-4396-8d5f-8c081fb06d67

Methodology and review provenance

AI-assisted synthesis based on stored public vulnerability evidence. System validation, approval state, and publication status do not by themselves establish human review of this revision. PatchSiren helps prioritize defensive review and does not prove exposure or remediation on any system.