CVE-2026-90000

HIGHPre-NVD 8.88.8—
EchelonGraph scoreHIGH confidence

Score 8.8 from GitHub Security Advisory (severity: HIGH) published 2026-09-16. A secondary CVSS source baseline 8.8; sources differ by 0.0.

Triggered by: GitHub Security Advisory CVSS
Sources: epss, ghsa, secondary
Trending — 4 sources updated this week
8.8EG
EchelonGraph verdictPlan mitigationSerious severity, but no confirmed exploitation yet.
  • High severity, but no confirmed exploitation yet
CISA-KEV: Not listedEPSS PROB: 0.4%CVSS: 8.8Exploit: 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:

HID: rmi: fix OOB access with undersized RMI reports

The hid-rmi driver sizes its writeReport/readReport buffer purely from the report descriptor supplied by the device, with no minimum bound:

data->input_report_size = hid_report_len(input_report); data->output_report_size = hid_report_len(output_report); alloc_size = data->output_report_size + data->input_report_size; data->writeReport = devm_kzalloc(&hdev->dev, alloc_size, GFP_KERNEL); data->readReport = data->writeReport + data->output_report_size;

but then reads and writes fixed offsets into it. A device declaring a 1-byte output and a 1-byte input report makes hid_report_len() return 2 for each, so alloc_size is 4, while rmi_set_page() -- reached unconditionally at probe time through rmi_input_configured() -- stores writeReport[4] and rmi_hid_read_block() stores writeReport[0..5]. Since readReport lives at writeReport + output_report_size, those stores also corrupt the window the next reply is parsed out of.

The read path is worse: the copy length comes from readReport[1], which the device fills in and can be up to 255, and the copy starts at &readReport[2] with no regard for input_report_size, so it runs past the end of the allocation into adjacent slab objects. This does not even need a lying device -- rmi_f01_probe() issues a fixed 21-byte register read, so any device declaring an input report smaller than 23 bytes reads out of bounds even when it answers truthfully. Those bytes become the register values the RMI core acts on: rmi_f01_probe() prints them to the kernel log as the product id and exports them through the mode 0444 sysfs attribute of the same name, and rmi_driver_set_irq_bits() sends them back to the device as the interrupt mask, so an undersized report descriptor leaks heap contents both to unprivileged userspace and to the device itself.

The write path has no bound either: rmi_hid_write_block() copies an unbounded len to &writeReport[4], and the largest caller a device can drive at probe time is rmi_driver_set_irq_bits(), whose length is derived from the interrupt source counts the device declares in its Page Description Table.

Finally, the read loop cannot terminate on a zero-length reply: such a reply copies nothing and advances neither bytes_read nor bytes_needed, and because a reply did arrive the one second wait_event_timeout() does not fire either, so a device answering 0 forever keeps the loop running inside the probe worker with page_mutex held. khungtaskd does not notice, because every reply wakes the task.

Reject reports too small for what the driver builds -- 6 output bytes for the write reports and 3 input bytes for the read handshake -- at probe time, clamp the write and the read copy to the report sizes the device declared, and treat a zero-length reply as an error. A device refused this way is started as an ordinary HID device, like one that does not carry the RMI report ids at all.

RMI_DEVICE must not be left set in device_flags on that path, because rmi_input_configured() would then run the RMI setup and reach rmi_set_page(), which writes the writeReport buffer the refusal just skipped allocating. The bit can arrive set: rmi_probe() copies id->driver_data into device_flags before the report checks, and a bind through the new_id sysfs attribute can supply driver_data with RMI_DEVICE (BIT(0)) set. Strip the bit where driver_data is copied, so RMI_DEVICE keeps meaning exactly "this probe validated the reports"; the three jumps to start that predate this patch are covered as well.

The error path also clears RMI_READ_DATA_PENDING on its way out, because that flag is what the wait at the top of the loop tests: leaving it set would make every later wait_event_timeout() return immediately on the stale reply and kill the read path for the rest of the device's life.

Clamping does not regress working hardware: the read loop already handles ---truncated---

CVSS v3
8.8
EG Score
8.8HIGHhigh confidence
EG Risk
44
EG Risk 44/100CISA SSVC

EG Risk is EchelonGraph's 0–100 priority score: it fuses intrinsic severity with real-world exploitation and automatability so you can rank equal-severity CVEs and fix the most dangerous first. Higher = act sooner. Distinct from the 0–10 EG Score (severity).

How it’s computed
Severity88% × 45%
Exploitation0% × 40%
Automatability30% × 15%
CISA SSVC: Track at low or medium mission impact; Track or Attend at high (mission-essential systems).
Action: No fix is confirmed yet. Restrict network exposure of the affected system or apply the vendor's mitigation within your standard update timelines at low or medium mission impact and sooner than that at high, and watch the vendor's advisory for the fix.
EPSS PROB
0.4%
EPSS %ILE
33rd
KEV
Not listed

CISA SSVCTrack at low or medium mission impact; Track or Attend at high (mission-essential systems).

No fix is confirmed yet. Restrict network exposure of the affected system or apply the vendor's mitigation within your standard update timelines at low or medium mission impact and sooner than that at high, and watch the vendor's advisory for the fix.

Exploitation none (no KEV listing, exploit record or EPSS ≥ 50%) · Automatable unknown (not published for this CVE) · Technical impact partial (CVSS below 9.0). Mission impact is CISA's Mission & Well-being decision point, and only you can judge it: high means the affected system is essential to your organisation's mission, or its compromise could cause irreversible harm to people. CISA's decision table

Published

September 16, 2026

Last Modified

September 16, 2026

Advisory Details (8)

Auto-updated Sep 16, 2026
No patch confirmed yet.
generic

HID: rmi: fix OOB access with undersized RMI reports - kernel/git/stable/linux.git - Linux kernel stable tree

https://git.kernel.org/stable/c/4956993bb3befdf791d71a4952d8d13bcfd44c7b
generic

HID: rmi: fix OOB access with undersized RMI reports - kernel/git/stable/linux.git - Linux kernel stable tree

https://git.kernel.org/stable/c/48934c2927414a37a7fadeb6091113177c0b2038
generic

HID: rmi: fix OOB access with undersized RMI reports - kernel/git/stable/linux.git - Linux kernel stable tree

https://git.kernel.org/stable/c/f4cb9c4556dcb593e66dbb855179dbd351dbb053
generic

HID: rmi: fix OOB access with undersized RMI reports - kernel/git/stable/linux.git - Linux kernel stable tree

https://git.kernel.org/stable/c/ab2958e0c94edd63315dd14dc548874cc63a4043
generic

HID: rmi: fix OOB access with undersized RMI reports - kernel/git/stable/linux.git - Linux kernel stable tree

https://git.kernel.org/stable/c/a8be8bbf0952bb7ff46636ead1896769c381fe55
generic

HID: rmi: fix OOB access with undersized RMI reports - kernel/git/stable/linux.git - Linux kernel stable tree

https://git.kernel.org/stable/c/183da103022ec11af55ba9951d2cc171fb6c836b
generic

HID: rmi: fix OOB access with undersized RMI reports - kernel/git/stable/linux.git - Linux kernel stable tree

https://git.kernel.org/stable/c/056ef8e6700b8b6ca11453a9d4bfb1b868a5cd88
generic

HID: rmi: fix OOB access with undersized RMI reports - kernel/git/stable/linux.git - Linux kernel stable tree

https://git.kernel.org/stable/c/fba600d824597b2a894ecae72fc422c2b8c08f8c

Vendor Advisories for CVE-2026-90000(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 (179 versions)
  • every version up to 7.2.6-1: fixed in 7.2.6-1
—

Data Freshness Timeline

(refreshed 43× in last 7d / 119× 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.

Showing the most recent 100 of 119 total refreshes for this CVE.

  1. 2026-10-05 03:09 UTCEG score recompute
  2. 2026-10-05 03:09 UTCVendor advisory
  3. 2026-10-05 03:09 UTCGHSA enrichment
  4. 2026-10-04 23:22 UTCEPSS rescore
  5. 2026-10-04 15:21 UTCVendor advisory
  6. 2026-10-04 15:21 UTCGHSA enrichment
  7. 2026-10-04 03:29 UTCVendor advisory
  8. 2026-10-04 03:29 UTCGHSA enrichment
  9. 2026-10-03 15:52 UTCEG score recompute
  10. 2026-10-03 15:52 UTCVendor advisory
  11. 2026-10-03 15:52 UTCGHSA enrichment
  12. 2026-10-03 04:01 UTCEG score recompute
  13. 2026-10-03 04:01 UTCVendor advisory
  14. 2026-10-03 04:01 UTCGHSA enrichment
  15. 2026-10-02 16:20 UTCVendor advisory
  16. 2026-10-02 16:20 UTCVendor advisory
  17. 2026-10-02 16:20 UTCGHSA enrichment
  18. 2026-10-02 16:20 UTCGHSA enrichment
  19. 2026-10-02 04:44 UTCEG score recompute
  20. 2026-10-02 04:44 UTCVendor advisory
  21. 2026-10-02 04:44 UTCGHSA enrichment
  22. 2026-10-01 19:51 UTCEPSS rescore
  23. 2026-10-01 17:07 UTCVendor advisory
  24. 2026-10-01 17:07 UTCGHSA enrichment
  25. 2026-10-01 05:19 UTCVendor advisory
Show 75 more
  1. 2026-10-01 05:18 UTCGHSA enrichment
  2. 2026-09-30 17:41 UTCEG score recompute
  3. 2026-09-30 17:41 UTCVendor advisory
  4. 2026-09-30 17:41 UTCGHSA enrichment
  5. 2026-09-30 15:04 UTCEPSS rescore
  6. 2026-09-30 06:03 UTCVendor advisory
  7. 2026-09-30 06:03 UTCGHSA enrichment
  8. 2026-09-29 18:26 UTCEG score recompute
  9. 2026-09-29 18:26 UTCVendor advisory
  10. 2026-09-29 18:26 UTCGHSA enrichment
  11. 2026-09-29 06:09 UTCEG score recompute
  12. 2026-09-29 06:09 UTCVendor advisory
  13. 2026-09-29 06:09 UTCGHSA enrichment
  14. 2026-09-28 18:33 UTCEG score recompute
  15. 2026-09-28 18:33 UTCVendor advisory
  16. 2026-09-28 18:33 UTCGHSA enrichment
  17. 2026-09-28 13:52 UTCEPSS rescore
  18. 2026-09-28 13:52 UTCEPSS rescore
  19. 2026-09-28 06:56 UTCVendor advisory
  20. 2026-09-28 06:56 UTCGHSA enrichment
  21. 2026-09-27 19:19 UTCEG score recompute
  22. 2026-09-27 19:19 UTCVendor advisory
  23. 2026-09-27 19:19 UTCGHSA enrichment
  24. 2026-09-27 13:49 UTCEPSS rescore
  25. 2026-09-27 07:42 UTCVendor advisory
  26. 2026-09-27 07:42 UTCGHSA enrichment
  27. 2026-09-26 20:05 UTCEG score recompute
  28. 2026-09-26 20:05 UTCVendor advisory
  29. 2026-09-26 20:05 UTCGHSA enrichment
  30. 2026-09-26 15:59 UTCEPSS rescore
  31. 2026-09-26 08:27 UTCEG score recompute
  32. 2026-09-26 08:27 UTCVendor advisory
  33. 2026-09-26 08:27 UTCGHSA enrichment
  34. 2026-09-25 20:48 UTCVendor advisory
  35. 2026-09-25 20:48 UTCGHSA enrichment
  36. 2026-09-25 09:09 UTCVendor advisory
  37. 2026-09-25 09:09 UTCGHSA enrichment
  38. 2026-09-24 21:32 UTCEG score recompute
  39. 2026-09-24 21:32 UTCVendor advisory
  40. 2026-09-24 21:32 UTCGHSA enrichment
  41. 2026-09-24 14:04 UTCEPSS rescore
  42. 2026-09-24 09:19 UTCVendor advisory
  43. 2026-09-24 09:19 UTCGHSA enrichment
  44. 2026-09-23 21:42 UTCEG score recompute
  45. 2026-09-23 21:42 UTCVendor advisory
  46. 2026-09-23 21:42 UTCGHSA enrichment
  47. 2026-09-23 17:54 UTCEPSS rescore
  48. 2026-09-23 10:05 UTCVendor advisory
  49. 2026-09-23 10:05 UTCGHSA enrichment
  50. 2026-09-22 22:29 UTCEG score recompute
  51. 2026-09-22 22:29 UTCVendor advisory
  52. 2026-09-22 22:28 UTCGHSA enrichment
  53. 2026-09-22 16:01 UTCEPSS rescore
  54. 2026-09-22 10:50 UTCVendor advisory
  55. 2026-09-22 10:50 UTCGHSA enrichment
  56. 2026-09-21 23:13 UTCEG score recompute
  57. 2026-09-21 23:13 UTCVendor advisory
  58. 2026-09-21 23:13 UTCGHSA enrichment
  59. 2026-09-21 21:09 UTCEPSS rescore
  60. 2026-09-21 11:37 UTCVendor advisory
  61. 2026-09-21 11:37 UTCGHSA enrichment
  62. 2026-09-21 00:00 UTCEG score recompute
  63. 2026-09-21 00:00 UTCVendor advisory
  64. 2026-09-21 00:00 UTCGHSA enrichment
  65. 2026-09-20 20:16 UTCEPSS rescore
  66. 2026-09-20 12:23 UTCVendor advisory
  67. 2026-09-20 12:22 UTCGHSA enrichment
  68. 2026-09-20 00:41 UTCEG score recompute
  69. 2026-09-20 00:41 UTCVendor advisory
  70. 2026-09-20 00:41 UTCGHSA enrichment
  71. 2026-09-19 13:04 UTCVendor advisory
  72. 2026-09-19 13:04 UTCGHSA enrichment
  73. 2026-09-19 01:27 UTCEG score recompute
  74. 2026-09-19 01:27 UTCVendor advisory
  75. 2026-09-19 01:27 UTCGHSA enrichment

Frequently asked(5)

What is CVE-2026-90000?
CVE-2026-90000 is a high vulnerability published on September 16, 2026. In the Linux kernel, the following vulnerability has been resolved: HID: rmi: fix OOB access with undersized RMI reports The hid-rmi driver sizes its writeReport/readReport buffer purely from the report descriptor supplied by the device, with no minimum bound: data->inputreportsize =…
When was CVE-2026-90000 disclosed?
CVE-2026-90000 was first published on September 16, 2026. EchelonGraph re-ingests CVE updates from NVD on a 2-hour cycle, so this page reflects the latest published state.
Is CVE-2026-90000 actively exploited?
CVE-2026-90000 is not currently on CISA's Known Exploited Vulnerabilities catalog. FIRST EPSS estimates a 0.4% probability of exploitation in the next 30 days (33rd percentile of EPSS-scored CVEs).
What is the CVSS score of CVE-2026-90000?
CVE-2026-90000 has a CVSS base score of 8.8 (a secondary CVSS source that NVD displays; NVD's own analysis pending).
How do I remediate CVE-2026-90000?
No fix for CVE-2026-90000 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-90000 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-90000

Explore →

Is Your Infrastructure Affected by CVE-2026-90000?

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