CVE-2026-89903

HIGHPre-NVD 7.87.8—
EchelonGraph scoreHIGH confidence

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

Triggered by: GitHub Security Advisory CVSS
Sources: epss, ghsa, secondary
Trending — 3 sources updated this week
7.8EG
EchelonGraph verdictPlan a fixSerious severity, but no confirmed exploitation yet.
  • High severity, but no confirmed exploitation yet
CISA-KEV: Not listedEPSS PROB: 0.2%CVSS: 7.8Exploit: None knownExposed services: Not assessed

A fix is available — apply it.

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

LoongArch: Do not save/restore percpu base register in rethook trampoline

The rethook trampoline saves $r21 ($u0), the percpu base, into its frame at entry and restores it at exit. Inbetween rethook_trampoline_handler() may schedule via preempt_enable_notrace().

If the task migrates to another CPU, the frame's $r21 holds the old CPU's percpu base, and restoring it poisons $r21 on the new CPU. Until the next user->kernel transition heals $r21, all this_cpu_*() accesses (runqueues, RCU per-CPU data, timer tick programming, FPU ownership) hit the wrong CPU's percpu area.

Under kretprobe-heavy preemptible load this can corrupt scheduler and timer state: scheduling-while-atomic splats, wrong-CPU RCU warnings, WARN_ON_ONCE(rq != this_rq()) in nohz_balance_exit_idle(), and CPUs parking in the idle loop with the constant timer never re-armed (hard lockup). Reproduces on a Loongson-3A6000 with kretprobes on VFS paths plus heavy file churn (OS install / unsquashfs).

By convention $r21 always holds the current CPU's percpu base in kernel mode: SAVE_SOME() at exception entry reloads it only when coming from user mode, and RESTORE_SOME() restores it only when returning to user mode; the context-switch path never writes it. Therefore the live $r21 at trampoline exit is already correct, and nothing inbetween can change it legitimately (kernel C code cannot write a global register variable). The same flaw existed even in the pre-rethook kretprobe trampoline since v6.3; it was carried over when rethook replaced it. Drop both the save and the restore here. Drop the restore is enough to solve the issue, and drop the save is to keep the code tidy and no need to clear it.

CVSS v3
7.8
EG Score
7.8HIGHhigh confidence
EG Risk
40
EG Risk 40/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
Severity78% × 45%
Exploitation0% × 40%
Automatability30% × 15%
CISA SSVC: Track at low or medium mission impact; Track or Attend at high (mission-essential systems).
Action: A fix is available. Apply it within your standard update timelines at low or medium mission impact and sooner than that at high.
EPSS PROB
0.2%
EPSS %ILE
6th
KEV
Not listed

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

A fix is available. Apply it within your standard update timelines at low or medium mission impact and sooner than that at high.

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 (5)

Auto-updated Sep 16, 2026
Patch available.
generic

LoongArch: Do not save/restore percpu base register in rethook trampoline - kernel/git/stable/linux.git - Linux kernel stable tree

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

LoongArch: Do not save/restore percpu base register in rethook trampoline - kernel/git/stable/linux.git - Linux kernel stable tree

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

LoongArch: Do not save/restore percpu base register in rethook trampoline - kernel/git/stable/linux.git - Linux kernel stable tree

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

LoongArch: Do not save/restore percpu base register in rethook trampoline - kernel/git/stable/linux.git - Linux kernel stable tree

https://git.kernel.org/stable/c/8f15e95b438bc6b3c9f23a33c9a0d0678ebd1dc8
generic

LoongArch: Do not save/restore percpu base register in rethook trampoline - kernel/git/stable/linux.git - Linux kernel stable tree

https://git.kernel.org/stable/c/266ffc92e68593759adfe3d58f188773d32782c3

Vendor Advisories for CVE-2026-89903(1)

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

Affected Packages

(3 across 3 ecosystems)
Debian:12(1)
PackageVulnerable rangeFix by version rangeDependents
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 23× in last 7d / 76× 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-05 11:56 UTCEG score recompute
  2. 2026-10-05 11:56 UTCGHSA enrichment
  3. 2026-10-04 23:22 UTCEPSS rescore
  4. 2026-10-04 23:07 UTCGHSA enrichment
  5. 2026-10-04 10:18 UTCGHSA enrichment
  6. 2026-10-03 21:29 UTCEG score recompute
  7. 2026-10-03 21:29 UTCGHSA enrichment
  8. 2026-10-03 08:40 UTCGHSA enrichment
  9. 2026-10-02 18:48 UTCEG score recompute
  10. 2026-10-02 18:48 UTCGHSA enrichment
  11. 2026-10-02 05:55 UTCEG score recompute
  12. 2026-10-02 05:55 UTCGHSA enrichment
  13. 2026-10-01 19:51 UTCEPSS rescore
  14. 2026-10-01 17:07 UTCGHSA enrichment
  15. 2026-10-01 03:40 UTCEG score recompute
  16. 2026-10-01 03:40 UTCGHSA enrichment
  17. 2026-09-30 15:04 UTCEPSS rescore
  18. 2026-09-30 14:52 UTCGHSA enrichment
  19. 2026-09-30 02:03 UTCEG score recompute
  20. 2026-09-30 02:03 UTCGHSA enrichment
  21. 2026-09-29 13:14 UTCGHSA enrichment
  22. 2026-09-29 00:20 UTCEG score recompute
  23. 2026-09-29 00:20 UTCGHSA enrichment
  24. 2026-09-28 13:52 UTCEPSS rescore
  25. 2026-09-28 13:52 UTCEPSS rescore
Show 51 more
  1. 2026-09-28 11:30 UTCGHSA enrichment
  2. 2026-09-27 22:42 UTCEG score recompute
  3. 2026-09-27 22:42 UTCGHSA enrichment
  4. 2026-09-27 13:49 UTCEPSS rescore
  5. 2026-09-27 09:53 UTCGHSA enrichment
  6. 2026-09-26 21:04 UTCEG score recompute
  7. 2026-09-26 21:04 UTCGHSA enrichment
  8. 2026-09-26 15:59 UTCEPSS rescore
  9. 2026-09-26 08:15 UTCEG score recompute
  10. 2026-09-26 08:14 UTCGHSA enrichment
  11. 2026-09-25 19:21 UTCGHSA enrichment
  12. 2026-09-25 05:42 UTCGHSA enrichment
  13. 2026-09-24 16:53 UTCEG score recompute
  14. 2026-09-24 16:53 UTCGHSA enrichment
  15. 2026-09-24 14:04 UTCEPSS rescore
  16. 2026-09-24 04:05 UTCEG score recompute
  17. 2026-09-24 04:05 UTCGHSA enrichment
  18. 2026-09-23 17:54 UTCEPSS rescore
  19. 2026-09-23 15:16 UTCGHSA enrichment
  20. 2026-09-23 02:27 UTCEG score recompute
  21. 2026-09-23 02:27 UTCGHSA enrichment
  22. 2026-09-22 16:01 UTCEPSS rescore
  23. 2026-09-22 13:38 UTCGHSA enrichment
  24. 2026-09-22 00:49 UTCEG score recompute
  25. 2026-09-22 00:49 UTCGHSA enrichment
  26. 2026-09-21 21:09 UTCEPSS rescore
  27. 2026-09-21 12:01 UTCGHSA enrichment
  28. 2026-09-20 23:13 UTCEG score recompute
  29. 2026-09-20 23:13 UTCGHSA enrichment
  30. 2026-09-20 20:16 UTCEPSS rescore
  31. 2026-09-20 10:24 UTCGHSA enrichment
  32. 2026-09-19 21:35 UTCEG score recompute
  33. 2026-09-19 21:35 UTCGHSA enrichment
  34. 2026-09-19 08:46 UTCGHSA enrichment
  35. 2026-09-18 19:57 UTCEG score recompute
  36. 2026-09-18 19:57 UTCGHSA enrichment
  37. 2026-09-18 19:28 UTCEPSS rescore
  38. 2026-09-18 07:08 UTCEG score recompute
  39. 2026-09-18 07:08 UTCGHSA enrichment
  40. 2026-09-17 19:32 UTCEPSS rescore
  41. 2026-09-17 18:19 UTCGHSA enrichment
  42. 2026-09-17 04:08 UTCEG score recompute
  43. 2026-09-17 04:08 UTCGHSA enrichment
  44. 2026-09-16 15:19 UTCEG score recompute
  45. 2026-09-16 15:19 UTCGHSA enrichment
  46. 2026-09-16 14:48 UTCEG score recompute▲ 7.80
  47. 2026-09-16 14:48 UTCGHSA enrichment
  48. 2026-09-16 14:45 UTCMITRE cvelistV5CVSS v3 → 7.8 · severity → HIGH
  49. 2026-09-16 11:21 UTCNVD update
  50. 2026-09-16 10:39 UTCEG score recompute
  51. 2026-09-16 10:36 UTCMITRE cvelistV5first tracked

Frequently asked(5)

What is CVE-2026-89903?
CVE-2026-89903 is a high vulnerability published on September 16, 2026. In the Linux kernel, the following vulnerability has been resolved: LoongArch: Do not save/restore percpu base register in rethook trampoline The rethook trampoline saves $r21 ($u0), the percpu base, into its frame at entry and restores it at exit. Inbetween rethooktrampolinehandler() may schedule…
When was CVE-2026-89903 disclosed?
CVE-2026-89903 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-89903 actively exploited?
CVE-2026-89903 is not currently on CISA's Known Exploited Vulnerabilities catalog. FIRST EPSS estimates a 0.2% probability of exploitation in the next 30 days (6th percentile of EPSS-scored CVEs).
What is the CVSS score of CVE-2026-89903?
CVE-2026-89903 has a CVSS base score of 7.8 (a secondary CVSS source that NVD displays; NVD's own analysis pending).
How do I remediate CVE-2026-89903?
A fix for CVE-2026-89903 is available: update to the fixed version the vendor names in its advisory. The vendor advisories EchelonGraph has for CVE-2026-89903 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-89903

Explore →

Is Your Infrastructure Affected by CVE-2026-89903?

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