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

vduse: validate virtqueue alignment

vduse_validate_config() only checks the upper bound of vq_align. Invalid
values can therefore reach vring_create_virtqueue_map(). The split-ring
helpers use align - 1 as a bit mask, so the alignment must be a non-zero
power of two. A zero value makes vring_size() drop the descriptor and
available-ring part and vring_init() leave the used ring pointer NULL.

The VIRTIO spec requires the used ring to start at an address
aligned to at least 4 bytes. Reject values below VRING_USED_ALIGN_SIZE as
well as non-power-of-two values before they reach the virtio ring helpers.

Opening a virtio-net device created with vq_align=0 triggered:

BUG: KASAN: null-ptr-deref in virtqueue_kick_prepare_split+0xe3/0x100
Read of size 2 at addr 0000000000000000 by task systemd-network/1062

Call Trace (relevant frames):
dump_stack_lvl
print_report
kasan_report
__asan_load2
virtqueue_kick_prepare_split+0xe3/0x100
virtqueue_kick_prepare+0x40/0x60
try_fill_recv+0x857/0x1250
virtnet_open+0x189/0x460
__dev_open+0x225/0x390
__dev_change_flags+0x368/0x3b0
netif_change_flags+0x56/0xc0
do_setlink.isra.0+0x68c/0x1e30

Validate the value before it reaches the virtio ring helpers.
Published: 2026-09-25
Score: n/a
EPSS: n/a
KEV: No
Impact: NULL pointer dereference causing kernel crash and denial of service
Action: Patch kernel
AI Analysis

Impact

The vulnerability originates in the Linux kernel’s vduse module where vduse_validate_config incorrectly allows vq_align values that are zero or not a power of two to propagate to the vring helper functions. When such an invalid value reaches vring_create_virtqueue_map the alignment mask calculation results in a null used‑ring pointer. A subsequent call to virtqueue_kick_prepare_split dereferences this null pointer, producing a KASAN report and a kernel panic. The effect is a forced system crash and loss of service for the offending virtio device.

Affected Systems

This flaw is present in any Linux kernel that contains the unpatched vduse code. The patch is bundled in later kernel releases, but the exact version numbers are not listed in the provided data. All system installations running a kernel prior to the fix, particularly those that enable virtio-net or other devices using vduse, are susceptible.

Risk and Exploitability

The risk is high because the flaw allows a local or potentially privileged attacker to trigger a kernel crash by opening a virtio device with an invalid alignment. No exploitation code or remote code execution is described, but the impact of a denial of service is significant. The EPSS score is not available and the vulnerability has not been added to the CISA KEV catalog, which suggests current exploitation activity may be low, yet the severity of the crash warrants immediate attention.

Generated by OpenCVE AI on September 25, 2026 at 14:24 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Update the Linux kernel to a version that includes the vduse alignment validation fix.
  • Ensure that any virtio device configuration uses a non‑zero power‑of‑two value for vq_align and enforces a minimum alignment of 4 bytes.
  • Monitor system logs for KASAN or NULL‑pointer dereference messages to detect attempts or accidental misconfigurations, and apply remediation or reboot as needed.

Generated by OpenCVE AI on September 25, 2026 at 14:24 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Fri, 25 Sep 2026 14:45:00 +0000

Type Values Removed Values Added
Weaknesses CWE-20
CWE-476

Fri, 25 Sep 2026 10:30:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: vduse: validate virtqueue alignment vduse_validate_config() only checks the upper bound of vq_align. Invalid values can therefore reach vring_create_virtqueue_map(). The split-ring helpers use align - 1 as a bit mask, so the alignment must be a non-zero power of two. A zero value makes vring_size() drop the descriptor and available-ring part and vring_init() leave the used ring pointer NULL. The VIRTIO spec requires the used ring to start at an address aligned to at least 4 bytes. Reject values below VRING_USED_ALIGN_SIZE as well as non-power-of-two values before they reach the virtio ring helpers. Opening a virtio-net device created with vq_align=0 triggered: BUG: KASAN: null-ptr-deref in virtqueue_kick_prepare_split+0xe3/0x100 Read of size 2 at addr 0000000000000000 by task systemd-network/1062 Call Trace (relevant frames): dump_stack_lvl print_report kasan_report __asan_load2 virtqueue_kick_prepare_split+0xe3/0x100 virtqueue_kick_prepare+0x40/0x60 try_fill_recv+0x857/0x1250 virtnet_open+0x189/0x460 __dev_open+0x225/0x390 __dev_change_flags+0x368/0x3b0 netif_change_flags+0x56/0xc0 do_setlink.isra.0+0x68c/0x1e30 Validate the value before it reaches the virtio ring helpers.
Title vduse: validate virtqueue alignment
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-09-25T10:23:22.620Z

Reserved: 2026-09-25T10:18:58.209Z

Link: CVE-2026-97989

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-09-25T11:17:27.010

Modified: 2026-09-25T11:17:27.010

Link: CVE-2026-97989

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-09-25T14:30:14Z

Weaknesses
  • CWE-20

    Improper Input Validation

  • CWE-476

    NULL Pointer Dereference