---
id: CVE-2026-89513
title: |-
  In the Linux kernel, the following vulnerability has been resolved:

  RISC-V: KVM: Fix PMU event info array size overflow

  SBI PMU EVENT_GET_INFO stores guest-controlled num_events * sizeof(*einfo)
  in a 32-bit integer
summary: |-
  In the Linux kernel, the following vulnerability has been resolved:

  RISC-V: KVM: Fix PMU event info array size overflow

  SBI PMU EVENT_GET_INFO stores guest-controlled num_events * sizeof(*einfo)
  in a 32-bit integer. On RV64, num_events…
severity: high
cvss: 8.8
cvssVector: 'CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H'
cwe:
  - CWE-787
vendor: Linux
product: Linux
affected:
  - >-
    Linux >= e309fd113b9f6c34672a487be08fecb7e12e7e29 <
    ddbd71a3780942918a7d116d666313e5b3304d73
  - >-
    Linux >= e309fd113b9f6c34672a487be08fecb7e12e7e29 <
    82088f88c96b99c27a974d09b02c2b133262fadf
  - >-
    Linux >= e309fd113b9f6c34672a487be08fecb7e12e7e29 <
    735bc20c24187ca419c9d5e63860a54b91be34bd
  - Linux 6.18
published: '2026-09-11'
updated: '2026-10-15'
sourceUpdated: '2026-10-15T11:17:53.707'
source: NVD
sourceUrl: 'https://nvd.nist.gov/vuln/detail/CVE-2026-89513'
references:
  - url: 'https://git.kernel.org/stable/c/735bc20c24187ca419c9d5e63860a54b91be34bd'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/82088f88c96b99c27a974d09b02c2b133262fadf'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/ddbd71a3780942918a7d116d666313e5b3304d73'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: >-
      https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-89513.json
  - url: 'https://access.redhat.com/security/cve/CVE-2026-89513'
  - url: 'https://bugzilla.redhat.com/show_bug.cgi?id=2532187'
  - url: 'https://www.cve.org/CVERecord?id=CVE-2026-89513'
  - url: 'https://nvd.nist.gov/vuln/detail/CVE-2026-89513'
  - url: >-
      https://git.kernel.org/pub/scm/linux/security/vulns.git/plain/cve/published/2026/CVE-2026-89513.mbox
tags:
  - nvd
  - cve.org
  - csaf
  - vex
  - red-hat
  - score-dispute
epss: 0.00173
epssPercentile: 0.06729
scores:
  nvd: 8.8
  cna: 8.8
  vendor: 5.5
ingestedAt: '2026-09-14T15:23:07.475Z'
---

## Overview

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

RISC-V: KVM: Fix PMU event info array size overflow

SBI PMU EVENT_GET_INFO stores guest-controlled num_events * sizeof(*einfo)
in a 32-bit integer. On RV64, num_events = 0x10000001 makes 0x100000010
truncate to 16. KVM then allocates one entry but loops over the original
num_events, causing out-of-bounds reads and writes. A nested guest
triggered:

BUG: KASAN: slab-out-of-bounds in kvm_riscv_vcpu_pmu_event_info+0xa4/0x142
Read of size 4 at addr ff600000074d46b0 by task init/1
Call Trace:
[<ffffffff8006471c>] kvm_riscv_vcpu_pmu_event_info+0xa4/0x142
[<ffffffff800690c0>] kvm_sbi_ext_pmu_handler+0xca/0x268
[<ffffffff8006779e>] kvm_riscv_vcpu_sbi_ecall+0xec/0x1e6
[<ffffffff8006008c>] kvm_riscv_vcpu_exit+0x48c/0x540
[<ffffffff8005ea0a>] kvm_arch_vcpu_ioctl_run+0x37e/0xc80
Allocated by task 1:
 __kmalloc_noprof+0x19e/0x4b0
 kvm_riscv_vcpu_pmu_event_info+0x72/0x142
 kvm_sbi_ext_pmu_handler+0xca/0x268
 kvm_riscv_vcpu_sbi_ecall+0xec/0x1e6
 kvm_riscv_vcpu_exit+0x48c/0x540
 kvm_arch_vcpu_ioctl_run+0x37e/0xc80
The buggy address is located 0 bytes to the right of
 allocated 16-byte region [ff600000074d46a0, ff600000074d46b0)

Store the shared-memory size in size_t and reject multiplication overflow.
Allocate the guest-driven array with GFP_KERNEL_ACCOUNT so it is charged
to kmemcg, and use __GFP_NOWARN to suppress allocation failure warnings.
Use kvcalloc() to allow vmalloc fallback and an unsigned long loop index
to match num_events.

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.

## Vendor advisories

- **Red Hat VEX** · Moderate · updated 2026-09-18 · [vex](https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-89513.json)
