Skip to main content

Linux Kernel EUVDEUVD-2026-86645

| CVE-2026-97991 HIGH
2026-09-25 Linux GHSA-hprw-93rc-4v5g
7.8
CVSS 3.1 · Vendor: Linux
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Access vdpa_sim_blk device (PR:L, local)
  2. Delivery
    Submit virtio-blk request with out-of-range start sector
  3. Exploit
    check_range logs but continues, capacity subtraction underflows
  4. Execution
    OOB offset into blk->buffer on IN/OUT/WRITE_ZEROES path
  5. Impact
    Host memory read/write or crash across scope boundary

Vulnerability Assessment

Exploitation Conditions

Requires the CONFIG_VDPA_SIM_BLK simulator driver to be built and an instantiated vdpa_sim_blk device, plus local low-privilege access to drive virtio-blk requests to it (e.g., via vhost-vdpa). The trigger is a request whose start sector is at or beyond the device capacity, or a sub-sector request exactly at the capacity boundary. Limiting factors: this is a development/simulation driver rarely enabled in production kernels, exploitation is local (AV:L) and needs existing privilege over the device (PR:L), and reliably converting the huge underflowed offset into a controlled adjacent-buffer corruption (rather than an unusable wild pointer that just crashes) requires the specific boundary condition described (AC:H).

Impact

This is a genuine memory-safety flaw with a controlled component, not the DoS-only pattern common to this kernel batch. The CVSS 3.1 vector (AV:L/AC:H/PR:L/UI:N/S:C/C:H/I:H/A:H = 7.8) reflects local access with existing low privilege over the vDPA device, and the S:C (scope change) is defensible: vdpa_sim_blk runs in host kernel context while requests are driven by a guest/consumer via vhost-vdpa, so guest-controlled input corrupting host memory crosses a security boundary. The impact ratings are supported by the description - VIRTIO_BLK_T_OUT copies guest-controlled data out of bounds (integrity), VIRTIO_BLK_T_IN reads host memory back to the guest (confidentiality/leak), and any wild offset faults (availability). No EPSS score, no CISA KEV listing, and no public POC are present in the input, so there is no signal of active or imminent exploitation. The dominant risk-limiting factor is deployment: vdpa_sim_blk is a simulator/development driver, so despite the accurate CVSS, real-world exposure is very narrow. AC:H is plausible because turning the underflow into a useful adjacent-buffer write (rather than an unusable ~2^64 wild offset that merely crashes) requires the specific sub-sector-at-capacity boundary condition described. Net: technically legitimate, correctly tagged, but low operational priority due to rare footprint and absent exploitation signals.

Exploit ScenarioDerived

A local principal with access to a vdpa_sim_blk device (or a guest reaching it through vhost-vdpa passthrough) submits a virtio-blk request whose start sector is at or beyond the simulated device capacity. The failed range check logs the error but proceeds, so the unsigned capacity subtraction underflows into an out-of-range offset into blk->buffer, letting a WRITE (T_OUT/T_WRITE_ZEROES) corrupt host memory or a READ (T_IN) leak host memory to the guest. No public exploit code is identified at time of analysis.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.1% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Sep 25, 2026

Local users who already hold access to a vdpa_sim_blk virtio-block device can drive requests whose start sector is at or beyond the device capacity, causing an unsigned underflow in vdpasim_blk_check_range() that forwards a wildly out-of-range buffer offset into the data path and yields out-of-bounds writes (VIRTIO_BLK_T_OUT copy-in, VIRTIO_BLK_T_WRITE_ZEROES memset) and out-of-bounds reads (VIRTIO_BLK_T_IN). The flaw affects Linux kernels built with the CONFIG_VDPA_SIM_BLK simulator driver since the feature was introduced (around 5.13) and is fixed by stable patches 6.12.111, 6.18.53, 7.2.7 and 7.3-rc3; there is no public exploit code and no confirmed active exploitation (no public exploit identified at time of analysis), and the practical risk is bounded because this is a development/simulation driver that is rarely enabled on production systems. The independently assessed vector (CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:C/C:L/I:H/A:H) treats integrity and availability as the dominant impacts and downgrades confidentiality relative to the vendor score.

RemediationAI

Apply the upstream fixes by upgrading to a kernel that contains the corrected vdpasim_blk range check: stable 6.12.111, 6.18.53 or 7.2.7, or mainline 7.3-rc3 and later, using the corresponding git.kernel.org stable commits (a8a1413a2cfdbedc896249f461d6d92efbbfe21f, 14acb0d44b7d90a077beb7b92b444b90bafda9d9, 0a8693f00c408d85f086ad85d29e7030bf1e2055, d6dac17e20fd2abd0eb8c09d69fccf7426e12bcf) if backporting manually. Because this is a simulator driver, the most effective mitigation for production hosts is to remove the exposure entirely: do not build CONFIG_VDPA_SIM_BLK, or blacklist/unload the vdpa_sim_blk module (modprobe -r vdpa_sim_blk or a modprobe.d blacklist entry) so no simulated virtio-blk device can be instantiated - the trade-off being that the vDPA test/simulation workload that depends on it will no longer function. If the simulator must stay available, restrict access to /dev/vhost-vdpa and to vdpa device creation/management to trusted root or CAP_NET_ADMIN holders, since exploitation requires local low-privilege access plus an already-instantiated vdpa_sim_blk device; this reduces the attack surface but does not repair the underlying memory-safety bug and offers no protection against a caller that already has that access. There is no public exploit code, so emergency compensating controls beyond module removal are not warranted on hosts that do not enable the driver.

Affected VersionsENISA

Linux 5.13
Linux 7d189f617f83f780915b737896a696ff605bd19f <a8a1413a2cfdbedc896249f461d6d92efbbfe21f
Linux patch: 0
Linux 7d189f617f83f780915b737896a696ff605bd19f <14acb0d44b7d90a077beb7b92b444b90bafda9d9
Linux patch: 6.12.111
Linux patch: 7.3-rc3
Linux 7d189f617f83f780915b737896a696ff605bd19f <0a8693f00c408d85f086ad85d29e7030bf1e2055
Linux patch: 6.18.53
Linux 7d189f617f83f780915b737896a696ff605bd19f <d6dac17e20fd2abd0eb8c09d69fccf7426e12bcf
Linux patch: 7.2.7

Affected Packages

euvd linux no fix

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

vdpa_sim_blk is the software simulator backend for virtio-blk devices used by the vDPA framework for development and testing (CONFIG_VDPA_SIM_BLK); it exposes a blk->buffer backed by kernel memory and services guest virtqueue requests through vringh. The root cause is an integer-underflow flaw in range validation: vdpasim_blk_check_range() detects an out-of-range start sector, logs it, but does not abort, so the subsequent unsigned subtraction of the start sector from capacity wraps around and produces a huge offset instead of a rejection. That underflowed offset is then consumed by three distinct request paths - VIRTIO_BLK_T_OUT feeds it to vringh_iov_pull_iotlb()/_copy_from_iter()/memcpy() for an out-of-bounds write, VIRTIO_BLK_T_IN feeds it to vringh_iov_push_iotlb()/_copy_to_iter() for an out-of-bounds read, and VIRTIO_BLK_T_WRITE_ZEROES feeds it to memset() for an out-of-bounds write. The patch additionally treats the capacity boundary itself as invalid because the IN/OUT paths round byte counts down to sectors for validation but later copy the original byte counts, so a sub-sector request aligned exactly at capacity would still touch memory past the end of the buffer. CWE is given as N/A in the source data, but the class maps to integer underflow (CWE-191) leading to out-of-bounds write/read (CWE-787/CWE-125). The CPE entries (cpe:2.3:a:linux:linux) confirm the affected component is the upstream Linux kernel itself rather than a downstream distribution package.

Know when the next one hits your stack

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (Linux) PRIMARY 7.8 HIGH
AV:L/AC:H/PR:L/UI:N/S:C/C:H/I:H/A:H
vuln.today AI 7.7 HIGH

Local access to the vdpa device (AV:L/PR:L); AC:H to shape a usable boundary OOB vs a wild-pointer crash; S:C for guest-driven host corruption; I:H (controlled write), C:L (limited leak), A:H (crash).

3.1 AV:L/AC:H/PR:L/UI:N/S:C/C:L/I:H/A:H
4.0 AV:L/AC:H/AT:N/PR:L/UI:N/VC:L/VI:H/VA:H/SC:L/SI:L/SA:N
SUSE 5.5 MEDIUM
AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
Red Hat 7.0 MEDIUM

Primary rating from Vendor (Linux).

CVSS VectorVendor: Linux

Attack Vector
Local
Attack Complexity
High
Privileges Required
Low
User Interaction
None
Scope
Changed
Confidentiality
High
Integrity
High
Availability
High

Lifecycle Timeline

4
CVSS changed
Sep 25, 2026 - 15:22 NVD
7.8 (HIGH)
Patch available
Sep 25, 2026 - 11:02 EUVD
CVE Published
Sep 25, 2026 - 10:23 cve.org
HIGH 7.8
CVE Published
Sep 25, 2026 - 10:23 cve.org
UNKNOWN (no severity yet)

DescriptionCVE.org

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

vdpa_sim_blk: reject out-of-range sector starts

vdpasim_blk_check_range() logs an invalid start sector but continues validating the request. The subsequent unsigned capacity subtraction can underflow and let an out-of-range buffer offset reach the data path.

The invalid offset is used by three request paths. VIRTIO_BLK_T_OUT copies guest data to blk->buffer + offset through vringh_iov_pull_iotlb(), causing an out-of-bounds write in _copy_from_iter() or memcpy(). VIRTIO_BLK_T_IN copies from blk->buffer + offset to the guest through vringh_iov_push_iotlb(), causing an out-of-bounds read in _copy_to_iter(). VIRTIO_BLK_T_WRITE_ZEROES passes blk->buffer + offset to memset(), causing an out-of-bounds write.

Reject starts at or beyond the capacity before the subtraction. Treat the capacity boundary as invalid because the IN and OUT paths round byte counts down to sectors for validation but later copy the original byte counts. A sub-sector request at the capacity boundary would otherwise still access past the end of the buffer.

I found this bug myself, though the patch was written with AI assistance.

Executive ViewAI

Why It Matters

CVE-2026-97991 affects the Linux kernel's vdpa_sim_blk simulator driver, a development-only component that is rarely enabled on production systems. If the driver is present and accessible to an authenticated local user, an out-of-bounds write or read can compromise host integrity and availability, but no public exploit identified at time of analysis and no confirmed actively exploited (CISA KEV) status applies. Leadership should prioritize inventory and remediation only for systems where CONFIG_VDPA_SIM_BLK is enabled, while treating broader exposure as limited.

Business Impact: Medium
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.1%
Top 98% exploitable
Prevalence
Rare
vdpa_sim_blk is a simulator/dev-test driver, not production-deployed
Data Quality
4 sources
Confidence: Medium

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.1%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Defer
Exploitation· derived
None
System Exposure· derived
Small
Automatable· derived
No
Human Impact
Medium

Priority Score

39
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +39
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

A buffer overflow occurs when a program writes more data to a memory buffer than it was allocated to hold, causing the excess data to spill into adjacent memory regions.

Vendor StatusVendor

SUSE

Severity: Moderate
Product Status
SUSE Linux Enterprise Desktop 15 SP7 Affected
SUSE Linux Enterprise Desktop 15 SP7 Affected
SUSE Linux Enterprise High Availability Extension 15 SP7 Affected
SUSE Linux Enterprise High Availability Extension 15 SP7 Affected
SUSE Linux Enterprise High Availability Extension 16.0 Affected

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy