HOL LogoGuard

Explore HOL

  • HOL home
  • AI agent registry
  • AI plugins
  • Open standards
  • HOL members
  • Sponsor HOL
  • Advertise with HOL

Guard product

  • Guard overviewLocal security and control for AI agents and the tools they use.
  • FeaturesRuntime protection, policy routing, review, and evidence.

Explore Guard

  • Product previewWalk through Guard surfaces in read-only demo mode.
  • ComparisonCompare Guard with native controls and AI security vendors.

AI tools

  • All AI toolsEvery supported AI tool and how Guard applies policy to it.
  • Codex
  • Claude Code
  • Cursor
  • Antigravity CLI
  • OpenCode
  • Hermes
  • OpenClaw
  • GitHub Copilot CLI
  • Antigravity
  • Kimi
  • Grok
  • Pi / Oh My Pi
  • Zcode

Extensions

  • All extensionsBrowse command and MCP coverage with owners and stated limits.
  • Command coverageShell command protection across clouds, databases, backups, and packages.
  • MCP server coverageSee how Guard maps risk state across MCP tools and servers.
  • Core safetyThe safety floor listings that ship with Guard.
  • Data and resilienceBackup and storage command protection.
  • Cloud and infrastructureAWS, Azure, GCP, Kubernetes, and more.

Security

  • AI security hubSecurity research, advisories, and agent safety coverage.
  • AI tool securitySecurity profiles for each supported coding agent.
  • Safe labsHands-on attack simulations with safe boundaries.
  • Redacted warningsReal blocked actions with sensitive details removed.
  • AdvisoriesCoordinated disclosure reports for AI tooling.
  • Active CVEsSearch active CVEs affecting AI tooling.

Learn

  • Security guidesPractical guides for securing AI agent workflows.
  • DocsInstall, configure, and operate Guard with confidence.
  • ResearchPublished security research, benchmarks, and methodology.

Community

  • ReleasesVersion history, shipped changes and upgrade notes.
  • ContributorsThe people and contributions behind HOL Guard.
  • AffiliatesShare Guard with your audience and earn from referrals.
  • SponsorFund agreed research, implementation and shared testing through the HOL Partner Program.
  • AdvertiseCompare README logo placements, previews and monthly prices, or promote a plugin or extension.
PricingEnterpriseOpen AppInstall Guard
  1. Guard
  2. Security
  3. CVEs
  4. CVE 2026 31588 kvm x86 use scratch field in mmio fragment to
HOL Guard

Public security guidance for teams protecting AI harnesses, MCP servers, skills, prompts, and local tool execution.

Install Guard

AI Security

  • Prompt injection
  • MCP security
  • OWASP MCP mapping
  • Supply chain

Resources

  • Trust packet
  • Harness setup
  • Redacted warnings
  • Safe labs

Product

  • Install Guard
  • Pricing
  • Open dashboard
Guard
  • Guard Overview
  • Releases
  • Contributors
  • Install Guard
  • Pricing
Docs
  • Documentation Index
  • Developer Hub
  • API Reference
  • Root OpenAPI
  • Registry OpenAPI
  • Run in Postman
  • Standards
  • Submit ERC-8004 Contract
  • Feature Your Agent
Best Plugins
  • Browse Plugins
  • Plugin Launches
  • Best Claude Plugins
  • Best Codex Plugins
  • Best Grok Plugins
  • Best Kimi Plugins
  • Best DeepSeek Plugins
  • Best Antigravity Plugins
  • Best MCP Servers
  • Best Cursor Plugins
  • Best OpenCode Plugins
Best Agents
  • Best ERC-8004 Agents
  • Best Virtuals Agents
  • Best MCP Servers
  • Best A2A Agents
  • Best x402 Payable
  • All Categories
Community
  • Telegram
  • X
More
  • About HOL
  • Sponsor
  • Advertise
  • Contact
  • Blog
  • GitHub
  • Privacy
  • Terms of Service
Settings

Copyright ยฉ 2026 HOL DAO LLC. All rights reserved.

Back to active CVEs
High ยท CVSS 8.8CVE-2026-31588

KVM: x86: Use scratch field in MMIO fragment to hold small write valuesCVE-2026-31588

Answer in brief

CVE-2026-31588 records a High severity (CVSS 8.8) vulnerability in KVM: x86: Use scratch field in MMIO fragment to hold small write values. The current sources do not mark it as known exploited. The current feed maps Linux/Linux (generic), Linux/Linux (generic). Check affected ranges and fixed versions before updating.

Analysis pending evidence review

HOL Guard separates source facts from reviewed analysis. See the methodology.

Published Apr 24, 2026Updated Oct 16, 2026Source checked Oct 16, 2026First seen by HOL Oct 16, 2026Material review Oct 16, 2026
Upstream Advisory

Key facts

Risk
High ยท CVSS 8.8
Exploitation
Not marked as known exploited
Affected software
2 mapped packages or products
Fix availability
Available

Why this deserves its current priority

CVSS is 8.8. The current sources do not mark it as known exploited. Treat this as a source-backed prioritization signal, not a statement about your environment.

Analysis status

Analysis pending evidence review

Factual feed record only; HOL analysis is not approved for indexing. Read the methodology.

Affected scope and exposure questions

The current feed maps Linux/Linux (generic), Linux/Linux (generic). Check affected ranges and fixed versions before updating.

Mapped affected packages and fixed versions
PackageAffected rangeFixed version
Linux/Linuxgeneric>=f78146b0f9230765c6315b2e14f56112513389ad <019d0bd32b9a4646ba35d904907452039e2db700 || >=f78146b0f9230765c6315b2e14f56112513389ad <4569c66dd9e94a22cd0796b6514a8b25ffff16a1 || >=f78146b0f9230765c6315b2e14f56112513389ad <52570e73d48f1c73836d37e594667117b4c2a5a8 || >=f78146b0f9230765c6315b2e14f56112513389ad <dc6a6c3db3a4eca7e747cfc46e22c08d016c68f7 || >=f78146b0f9230765c6315b2e14f56112513389ad <b5a02d37eb0739f462fa12df449ab9b3480c783b || >=f78146b0f9230765c6315b2e14f56112513389ad <22d2ff69d487a32a8b88f9c970120fc2daa08a77 || >=f78146b0f9230765c6315b2e14f56112513389ad <2b83d91e9ae92fe1258d7040a32430bbb3bb7d6e || >=f78146b0f9230765c6315b2e14f56112513389ad <3a7b6d75c8f85b09dea893f64a85a356bcf6c3fe || >=f78146b0f9230765c6315b2e14f56112513389ad <0b16e69d17d8c35c5c9d5918bf596c75a44655d3019d0bd32b9a4646ba35d904907452039e2db700, 4569c66dd9e94a22cd0796b6514a8b25ffff16a1, 52570e73d48f1c73836d37e594667117b4c2a5a8, dc6a6c3db3a4eca7e747cfc46e22c08d016c68f7, b5a02d37eb0739f462fa12df449ab9b3480c783b, 22d2ff69d487a32a8b88f9c970120fc2daa08a77, 2b83d91e9ae92fe1258d7040a32430bbb3bb7d6e, 3a7b6d75c8f85b09dea893f64a85a356bcf6c3fe, 0b16e69d17d8c35c5c9d5918bf596c75a44655d3
Linux/Linuxgeneric3.5Not reported

Recommended response

  1. 1Check inventory. Check lockfiles and deployed manifests for Linux/Linux, Linux/Linux.
  2. 2Review the reported fix. Update Linux/Linux to 019d0bd32b9a4646ba35d904907452039e2db700 if you use the affected versions. Test the change in a non-production environment first.

Evidence timeline and material changes

  1. Published upstream

    Apr 24, 2026

    Evidence: source:cvelist:source_dates:source-dates:record
  2. Source modified

    Oct 16, 2026

    Evidence: source:cvelist:source_dates:source-dates:record
  3. First seen by HOL

    Oct 16, 2026

Sources and claim methodology

  • Source referencegit.kernel.org
  • Source referencegit.kernel.org
  • Source referencegit.kernel.org
  • Source referencegit.kernel.org
  • Source referencegit.kernel.org
  • Source referencegit.kernel.org
  • Source referencegit.kernel.org
  • Source referencegit.kernel.org
  • Source referencegit.kernel.org
Upstream source description

In the Linux kernel, the following vulnerability has been resolved: KVM: x86: Use scratch field in MMIO fragment to hold small write values When exiting to userspace to service an emulated MMIO write, copy the to-be-written value to a scratch field in the MMIO fragment if the size of the data payload is 8 bytes or less, i.e. can fit in a single chunk, instead of pointing the fragment directly at the source value. This fixes a class of use-after-free bugs that occur when the emulator initiates a write using an on-stack, local variable as the source, the write splits a page boundary, *and* both pages are MMIO pages. Because KVM's ABI only allows for physically contiguous MMIO requests, accesses that split MMIO pages are separated into two fragments, and are sent to userspace one at a time. When KVM attempts to complete userspace MMIO in response to KVM_RUN after the first fragment, KVM will detect the second fragment and generate a second userspace exit, and reference the on-stack variable. The issue is most visible if the second KVM_RUN is performed by a separate task, in which case the stack of the initiating task can show up as truly freed data. ================================================================== BUG: KASAN: use-after-free in complete_emulated_mmio+0x305/0x420 Read of size 1 at addr ffff888009c378d1 by task syz-executor417/984 CPU: 1 PID: 984 Comm: syz-executor417 Not tainted 5.10.0-182.0.0.95.h2627.eulerosv2r13.x86_64 #3 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.15.0-0-g2dd4b9b3f840-prebuilt.qemu.org 04/01/2014 Call Trace: dump_stack+0xbe/0xfd print_address_description.constprop.0+0x19/0x170 __kasan_report.cold+0x6c/0x84 kasan_report+0x3a/0x50 check_memory_region+0xfd/0x1f0 memcpy+0x20/0x60 complete_emulated_mmio+0x305/0x420 kvm_arch_vcpu_ioctl_run+0x63f/0x6d0 kvm_vcpu_ioctl+0x413/0xb20 __se_sys_ioctl+0x111/0x160 do_syscall_64+0x30/0x40 entry_SYSCALL_64_after_hwframe+0x67/0xd1 RIP: 0033:0x42477d Code: <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 b0 ff ff ff f7 d8 64 89 01 48 RSP: 002b:00007faa8e6890e8 EFLAGS: 00000246 ORIG_RAX: 0000000000000010 RAX: ffffffffffffffda RBX: 00000000004d7338 RCX: 000000000042477d RDX: 0000000000000000 RSI: 000000000000ae80 RDI: 0000000000000005 RBP: 00000000004d7330 R08: 00007fff28d546df R09: 0000000000000000 R10: 0000000000000000 R11: 0000000000000246 R12: 00000000004d733c R13: 0000000000000000 R14: 000000000040a200 R15: 00007fff28d54720 The buggy address belongs to the page: page:0000000029f6a428 refcount:0 mapcount:0 mapping:0000000000000000 index:0x0 pfn:0x9c37 flags: 0xfffffc0000000(node=0|zone=1|lastcpupid=0x1fffff) raw: 000fffffc0000000 0000000000000000 ffffea0000270dc8 0000000000000000 raw: 0000000000000000 0000000000000000 00000000ffffffff 0000000000000000 page dumped because: kasan: bad access detected Memory state around the buggy address: ffff888009c37780: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ffff888009c37800: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff >ffff888009c37880: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ^ ffff888009c37900: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ffff888009c37980: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ================================================================== The bug can also be reproduced with a targeted KVM-Unit-Test by hacking KVM to fill a large on-stack variable in complete_emulated_mmio(), i.e. by overwrite the data value with garbage. Limit the use of the scratch fields to 8-byte or smaller accesses, and to just writes, as larger accesses and reads are not affected thanks to implementation details in the emulator, but add a sanity check to ensure those details don't change in the future. Specifically, KVM never uses on-stack variables for accesses larger that 8 bytes, e.g. uses an operand in the emulator context, and *al ---truncated---

Quoted source text, attributed separately from HOL analysis.

Related CVEs

  • J4Care dcm4che Inefficient Algorithmic ComplexitySame generic ecosystem
  • SparkyFitness: SSRF via unvalidated custom_url in AI service settingsSame generic ecosystem
  • gomarkdown/markdown IsSafeURL panics on short URLsSame generic ecosystem
  • J4Care dcm4che Loop with Unreachable Exit ConditionSame generic ecosystem
  • J4Care dcm4che Missing Authentication for Critical FunctionSame generic ecosystem
  • Guangzhou Juan IoT Technology EseeCloud Observable Response DiscrepancySame generic ecosystem

Record context

Vulnerability class
Tool Poisoning
EPSS
Not reported
CWE IDs
Not reported
Source
CVE List V5
Source checked
Oct 16, 2026
References
9 linked sources
Open source record