CVE-2026-98104

UNRATEDCVSS · not yet scoredTrending — 6 sources updated this week
—
EchelonGraph verdictMonitorLow exploitation likelihood right now — keep watching.
  • No CVSS published and no exploitation signals yet
CISA-KEV: Not listedEPSS PROB: 0.2%CVSS v2: —Exploit: None knownExposed services: Not assessed

No fix is confirmed yet — apply a workaround or compensating control (WAF / firewall / segmentation) and watch for the fix.

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

net/sched: cls_u32: fix duplicate handle when node ID pool is exhausted

gen_new_kid() falls back to returning max (htid | 0xFFF) when both idr_alloc_u32() ranges are full, instead of reporting an error. u32_change() trusts that value and inserts a new knode with a handle that is already live in 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 256*4095 knodes.

The sibling helper gen_new_htid() has the same silent in-band failure: it returns 0 when the tp_c handle pool (1..0x7FF) is full, and u32_init() publishes the root hash table with handle 0 without checking. Two root tables with handle 0 alias in u32_lookup_ht(), allowing cross-tcf_proto knode add/lookup/delete. Add the same exhaustion check that the divisor path already has.

Return an error so u32_change() fails with ENOSPC/ENOMEM when the node ID space is exhausted, and so u32_init() fails with -ENOMEM when the hash table ID space is exhausted. The extack message distinguishes pool exhaustion (-ENOSPC) from a transient allocation failure (-ENOMEM).

Conditions to recreate the bug:

  • CONFIG_NET_SCHED=y, CONFIG_CLS_U32=y (or =m with module loaded)
  • Create a clsact qdisc on a device, then add 4095 u32 filters with
auto-generated handles to fill the node ID space for the root hash table (single bucket). The 4096th auto-handle filter add triggers the duplicate handle (fh 800::fff reused). Reachable at Level 2 (unshare -Urn, namespace-local CAP_NET_ADMIN).
  • For gen_new_htid: create 2047 u32 proto entries on the same block
to fill the tp_c handle pool, then create one more. The root table gets handle 0 and aliases with other handle-0 root tables.

CVSS v3
—
EchelonGraph score
Not yet assessedNo source has published severity data for this CVE yet — no CVSS score from NVD or a CNA, no GitHub advisory, and it is not in CISA KEV. This is not a rating of zero; we cannot assess it yet.
EG Score
—
EG Risk
—
EPSS PROB
0.2%
EPSS %ILE
9th
KEV
Not listed

Published

September 25, 2026

Last Modified

October 3, 2026

Vendor Advisories for CVE-2026-98104(2)

These vendors published their own advisory mentioning this CVE — often with vendor-specific remediation steps + affected product lists not in NVD.

Affected Packages

(4 across 3 ecosystems)
Debian:12(2)
PackageVulnerable rangeFix by version rangeDependents
linux6.1.106-1 ... 7.2~rc7-1~exp1 (360 versions)
  • every version on: no fix on record
—
linux-6.126.12.100-1~deb12u1, 6.12.101-1~deb12u1, 6.12.107-1~deb12u1
  • every version up to 6.12.111-1~deb12u1: fixed in 6.12.111-1~deb12u1
—
Debian:13(1)
PackageVulnerable rangeFix by version rangeDependents
linux6.12.100-1 ... 6.12.96-1 (35 versions)
  • every version up to 6.12.111-1: fixed in 6.12.111-1
—
Debian:14(1)
PackageVulnerable rangeFix by version rangeDependents
linux6.12.100-1 ... 7.2~rc7-1~exp1 (180 versions)
  • every version up to 7.2.7-1: fixed in 7.2.7-1
—

Data Freshness Timeline

(refreshed 18× in last 7d / 26× in last 30d)

Each row is a source pipeline that fetched or updated this CVE on that date, with what changed. For example, "NVD update" means NVD published or revised its analysis for this CVE; "MITRE cvelistV5" means we ingested or refreshed it from the CNA feed. Most recent first.

  1. 2026-10-04 23:23 UTCEPSS rescore
  2. 2026-10-03 14:26 UTCEPSS rescore
  3. 2026-10-03 11:27 UTCVendor advisory
  4. 2026-10-03 11:27 UTCGHSA enrichment
  5. 2026-10-03 11:26 UTCNVD update
  6. 2026-10-03 11:12 UTCVendor advisory
  7. 2026-10-03 11:11 UTCGHSA enrichment
  8. 2026-10-03 11:10 UTCMITRE cvelistV5
  9. 2026-10-03 10:14 UTCVendor advisory
  10. 2026-10-03 10:14 UTCGHSA enrichment
  11. 2026-10-02 17:57 UTCEPSS rescore
  12. 2026-10-01 19:51 UTCEPSS rescore
  13. 2026-09-30 15:04 UTCEPSS rescore
  14. 2026-09-30 14:34 UTCEG score recompute
  15. 2026-09-30 14:34 UTCVendor advisory
  16. 2026-09-30 14:34 UTCGHSA enrichment
  17. 2026-09-28 13:52 UTCEPSS rescore
  18. 2026-09-28 13:52 UTCEPSS rescore
  19. 2026-09-28 07:11 UTCEG score recompute
  20. 2026-09-28 07:11 UTCVendor advisory
  21. 2026-09-28 07:11 UTCGHSA enrichment
  22. 2026-09-27 13:49 UTCEPSS rescore
  23. 2026-09-26 15:59 UTCEPSS rescore
  24. 2026-09-25 11:30 UTCNVD update
  25. 2026-09-25 10:48 UTCEG score recompute
Show 1 more
  1. 2026-09-25 10:46 UTCMITRE cvelistV5first tracked

Frequently asked(4)

What is CVE-2026-98104?
CVE-2026-98104 is a publicly disclosed vulnerability published on September 25, 2026. In the Linux kernel, the following vulnerability has been resolved: net/sched: cls_u32: fix duplicate handle when node ID pool is exhausted gennewkid() falls back to returning max (htid | 0xFFF) when both idrallocu32() ranges are full, instead of reporting an error. u32_change() trusts that value…
When was CVE-2026-98104 disclosed?
CVE-2026-98104 was first published on September 25, 2026, with the most recent update on October 3, 2026. EchelonGraph re-ingests CVE updates from NVD on a 2-hour cycle, so this page reflects the latest published state.
Is CVE-2026-98104 actively exploited?
CVE-2026-98104 is not currently on CISA's Known Exploited Vulnerabilities catalog. FIRST EPSS estimates a 0.2% probability of exploitation in the next 30 days (9th percentile of EPSS-scored CVEs).
How do I remediate CVE-2026-98104?
No fix for CVE-2026-98104 is confirmed yet. Until one is published, restrict network exposure of the affected system or apply the vendor's mitigation — for example, keep it off the internet or limit it to trusted networks — and watch the vendor's advisory for the fix. The vendor advisories EchelonGraph has for CVE-2026-98104 are linked in the Vendor Advisories panel on this page.

Dependency Blast Radius

See which npm, PyPI, Go, and Maven packages are affected by CVE-2026-98104

Explore →

Is Your Infrastructure Affected by CVE-2026-98104?

EchelonGraph automatically scans your cloud infrastructure and maps CVE exposure using blast radius analysis.