{
  "cveId": "CVE-2026-98464",
  "url": "https://patchblox.com/security/cve/CVE-2026-98464",
  "summary": "CVE-2026-98464 is fixed in 2 products on 1 platform, first by DEBIAN-CVE-2026-98464, released October 19, 2026. It is not reported as exploited. Patch Radar priority: High.",
  "title": "RISC-V: KVM: Synchronize hrtimer callback during teardown",
  "description": "In the Linux kernel, the following vulnerability has been resolved:  RISC-V: KVM: Synchronize hrtimer callback during teardown  The non-Sstc hrtimer callback clears next_set before its final uses of the enclosing vCPU.  If teardown observes next_set as false while the callback is still running, kvm_riscv_vcpu_timer_cancel() skips hrtimer_cancel() and kvm_destroy_vcpus() can free the vCPU before the callback enters kvm_riscv_vcpu_set_interrupt().  A guest can arm the timer with SBI TIME and request shutdown with SBI legacy shutdown or SRST.  A VMM that honors KVM_EXIT_SYSTEM_EVENT and destroys the VM supplies the teardown side of the race; no post-launch host ioctl is needed to arm or request teardown.  On upstream master 62cc90241548, generic KASAN reported:    BUG: KASAN: slab-use-after-free in do_raw_spin_lock   Write of size 4 at addr ff60000005e58898    kvm_riscv_vcpu_set_interrupt   kvm_riscv_vcpu_hrtimer_expired   __hrtimer_run_queues   hrtimer_interrupt  The object was allocated by KVM_CREATE_VCPU and freed concurrently by:    kvm_destroy_vcpus   kvm_arch_destroy_vm   kvm_destroy_vm   __fput  For deterministic validation, I added mdelay(1000) immediately after the existing next_set = false assignment.  This only widens the existing post-clear callback window.  A no-delay trace build naturally reached the callback-after-teardown-start/before-deinit ordering in 12 of 200 runs, but 1,500 stock-kernel stress iterations did not produce a KASAN report, so natural reproduction is timing-sensitive.  Always invoke hrtimer_cancel() for an initialized timer.  Preserve the existing -EINVAL result when the timer is no longer set, but only after synchronizing with a running callback.  With this patch, hrtimer_cancel() blocked for the full widened callback window before vCPU destruction.  KASAN reported no error in 100 fixed-and-widened runs or 200 fix-only timing-sweep runs.",
  "published": "2026-10-18T16:16:56Z",
  "severity": "Moderate",
  "cvss": 9.3,
  "cvssVector": "CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H",
  "epss": 0.00143,
  "epssPercentile": 0.0363,
  "priority": "High",
  "priorityTier": 3,
  "exploited": false,
  "vendorExploited": false,
  "disclosed": false,
  "vendorAdvisory": "https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-98464",
  "fixes": [
    {
      "platform": "linux",
      "product": "linux",
      "release": "Debian 12.15 (bookworm)",
      "fixedVersion": "6.1.190-1",
      "fix": "DEBIAN-CVE-2026-98464",
      "url": "https://patchblox.com/security/fix/linux/debian-cve-2026-98464",
      "released": "2026-10-19T16:27:52Z"
    },
    {
      "platform": "linux",
      "product": "linux",
      "release": "Debian 13.5 (trixie)",
      "fixedVersion": "6.12.113-1",
      "fix": "DEBIAN-CVE-2026-98464",
      "url": "https://patchblox.com/security/fix/linux/debian-cve-2026-98464",
      "released": "2026-10-19T16:27:52Z"
    },
    {
      "platform": "linux",
      "product": "linux",
      "release": "Debian 14",
      "fixedVersion": "7.2.9-1",
      "fix": "DEBIAN-CVE-2026-98464",
      "url": "https://patchblox.com/security/fix/linux/debian-cve-2026-98464",
      "released": "2026-10-19T16:27:52Z"
    },
    {
      "platform": "linux",
      "product": "linux-6.12",
      "release": "Debian 12.15 (bookworm)",
      "fixedVersion": "6.12.113-1~deb12u1",
      "fix": "DEBIAN-CVE-2026-98464",
      "url": "https://patchblox.com/security/fix/linux/debian-cve-2026-98464",
      "released": "2026-10-19T16:27:52Z"
    }
  ],
  "noFixYet": [],
  "dataAsOf": "2026-11-08T06:59:42Z",
  "attribution": {
    "text": "Data: Patchblox Patch Radar",
    "url": "https://patchblox.com/security/patch-radar",
    "terms": "https://patchblox.com/security/patch-radar/use-the-data"
  }
}