CVE-2026-89960

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.2%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:

s390/vfio-ap: fix stale pqap_hook pointer on error in vfio_ap_mdev_set_kvm()

In vfio_ap_mdev_set_kvm(), kvm->arch.crypto.pqap_hook is set to &matrix_mdev->pqap_hook before the update locks are acquired and the mdev list is checked for a conflicting assignment. If another mdev is already attached to the same KVM instance, the function returns -EPERM without restoring the hook pointer, leaving kvm->arch.crypto.pqap_hook pointing at the failing matrix_mdev instead of the mdev that legitimately owns the KVM.

Since matrix_mdev->kvm is never set on this error path, vfio_ap_mdev_unset_kvm() will not clean up the hook when matrix_mdev is later closed. If matrix_mdev is subsequently freed, any PQAP instruction executed by the guest will dereference the stale pointer through pqap_hook_rwsem, resulting in a use-after-free.

Since kvm->arch.crypto.pqap_hook is only set in the vfio_ap_mdev_set_kvm() function and is cleared in the vfio_ap_mdev_unset_kvm() function, a check for 'kvm->arch.crypto.pqap_hook != NULL' is all that is needed to determine whether it belongs to another mdev. This will alleviate the need to iterate the matrix_dev->mdev_list list to see if the kvm object is assigned to another mdev.This was introduced in v3 to alleviate the need to take the mdevs_lock while iterating the list; however, this did not prevent a potential race condition.

The pqap_hook_rwsem(write) is now performed inside get_update_locks_for_kvm(), which is updated to acquire pqap_hook_rwsem(write) between kvm->lock and mdevs_lock. This ordering is consistent with the PQAP intercept path, which acquires pqap_hook_rwsem in read mode while srcu is held under vcpu->mutex, establishing the dependency: kvm->lock -> vcpu->mutex -> srcu -> pqap_hook_rwsem(read).

The pqap_hook_rwsem is now released inside the release_update_locks_for_kvm(), which is updated to release pqap_hook_rwsem(write) between mdevs_lock and kvm->lock.

Additionally, kvm_put_kvm() in vfio_ap_mdev_unset_kvm() is moved after release_update_locks_for_kvm(). Previously it was called while kvm->lock was held; if it were ever the last reference, kvm_destroy_vm() would run under kvm->lock, which would deadlock.

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.2%
EPSS %ILE
5th
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 (5)

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

s390/vfio-ap: fix stale pqap_hook pointer on error in vfio_ap_mdev_set_kvm() - kernel/git/stable/linux.git - Linux kernel stable tree

https://git.kernel.org/stable/c/4400270ec0348d05dc0439d8f0130853ce7f9e20
generic

s390/vfio-ap: fix stale pqap_hook pointer on error in vfio_ap_mdev_set_kvm() - kernel/git/stable/linux.git - Linux kernel stable tree

https://git.kernel.org/stable/c/13bfc94eef389bd664ffc67b00184919902c938a
generic

s390/vfio-ap: fix stale pqap_hook pointer on error in vfio_ap_mdev_set_kvm() - kernel/git/stable/linux.git - Linux kernel stable tree

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

s390/vfio-ap: fix stale pqap_hook pointer on error in vfio_ap_mdev_set_kvm() - kernel/git/stable/linux.git - Linux kernel stable tree

https://git.kernel.org/stable/c/6a180adafc2a8a5fbe815985c71b2201e93ab5e1
generic

s390/vfio-ap: fix stale pqap_hook pointer on error in vfio_ap_mdev_set_kvm() - kernel/git/stable/linux.git - Linux kernel stable tree

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

Vendor Advisories for CVE-2026-89960(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 39× in last 7d / 109× 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 109 total refreshes for this CVE.

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

Frequently asked(5)

What is CVE-2026-89960?
CVE-2026-89960 is a high vulnerability published on September 16, 2026. In the Linux kernel, the following vulnerability has been resolved: s390/vfio-ap: fix stale pqaphook pointer on error in vfioapmdevset_kvm() In vfioapmdevsetkvm(), kvm->arch.crypto.pqap_hook is set to &matrixmdev->pqaphook before the update locks are acquired and the mdev list is checked for a…
When was CVE-2026-89960 disclosed?
CVE-2026-89960 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-89960 actively exploited?
CVE-2026-89960 is not currently on CISA's Known Exploited Vulnerabilities catalog. FIRST EPSS estimates a 0.2% probability of exploitation in the next 30 days (5th percentile of EPSS-scored CVEs).
What is the CVSS score of CVE-2026-89960?
CVE-2026-89960 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-89960?
No fix for CVE-2026-89960 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-89960 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-89960

Explore →

Is Your Infrastructure Affected by CVE-2026-89960?

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