CVE-2026-98004
Executive Summary
A concurrency race condition exists in the Linux kernel's RISC-V IOMMU driver where command queue publishing is not properly serialized. This flaw allows the software producer state to advance prematurely, potentially leading to command queue corruption, hardware desynchronization, or kernel instability on RISC-V systems with an IOMMU present. Affected systems are limited to RISC-V architectures utilizing the iommu/riscv driver, and exploitation requires local privileges or the ability to induce high IOMMU command traffic.
This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.
No signup required
Technical Analysis
The vulnerability resides in the command queue management of the RISC-V IOMMU driver. The driver implements a producer/consumer model where software writes commands to a queue and updates a tail pointer to signal the hardware. The identified flaw is a missing serialization point: software producer state (such as the head index or write pointer) can advance before the command is fully written and the hardware tail register is updated. This violates the ordering guarantee required by the IOMMU hardware, potentially causing the hardware to read stale or incomplete command descriptors.
Additionally, the driver waits for hardware consumption outside of the queue lock when the command queue is full. This design choice avoids blocking other CPUs behind a long poll but introduces a window where multiple CPUs could concurrently attempt to publish commands, exacerbating the race. The exact code-level manifestation is not detailed in the NVD description, but the class of vulnerability is a classic race condition (CWE-362) involving unprotected shared state between software and hardware. The attack surface is local: an attacker must be able to execute code on the target system (e.g., a malicious user process or a compromised VM guest) that triggers IOMMU command submissions. Because the IOMMU mediates DMA, corruption of its command queue could lead to memory access violations, denial of service (kernel panic), or potentially privilege escalation if an attacker can manipulate the IOMMU's mappings.
Exploitation Scenarios
No public PoC or exploit code is available. The attack chain is inferred from the vulnerability class and the NVD description:
- Reconnaissance: The attacker identifies a RISC-V system running a vulnerable Linux kernel with the iommu/riscv driver enabled and an IOMMU device present. This can be done via system information (e.g., /proc/cpuinfo, dmesg) or by probing device availability.
- Triggering the flaw: The attacker induces high-frequency IOMMU command submissions, for example by performing numerous DMA mapping or unmapping operations from a user-space process or a VM guest. This stresses the command queue and creates race conditions.
- Payload/Execution: By racing multiple threads that issue IOMMU commands, the attacker attempts to cause the producer state to advance before the hardware tail is updated. This can result in the hardware executing an unintended command (e.g., an invalidation or mapping command) or reading malformed descriptors. The exact impact depends on the command sequence; the most likely outcome is a kernel panic or IOMMU fault leading to system crash.
- Post-exploitation: If the race is successfully exploited to inject a malicious command, the attacker could potentially modify IOMMU page tables to gain arbitrary memory access, bypassing DMA protections. However, achieving this reliably is complex and requires precise timing. More commonly, the flaw leads to denial of service (system instability) or data corruption.
Impact Assessment
Successful exploitation can result in a kernel panic, system hang, or data corruption due to IOMMU command queue desynchronization. On systems where the IOMMU enforces DMA isolation (e.g., virtualized environments), a compromised queue could allow a malicious VM guest to escape isolation and access host memory, though this requires a highly specific and difficult-to-achieve race. The CVSS score is not assigned (N/A), but based on the vulnerability class and local attack vector, a reasonable assessment would be moderate to high severity: local attacker with low privileges could cause denial of service, with potential for privilege escalation in virtualized setups. The blast radius includes any RISC-V server, embedded system, or hypervisor host using the affected driver. Since RISC-V is an emerging architecture, the immediate impact is limited to early adopters and specific deployments.
Detection Guidance
Sigma Rule
title: Linux Kernel RISC-V IOMMU Command Queue Race Condition
id: 5f8c3a2e-1b9d-4c7a-8e6f-2a3b4c5d6e7f
status: experimental
description: Detects kernel panics or IOMMU errors indicative of the RISC-V IOMMU command queue publishing race condition.
author: Threat Intelligence
date: 2026-01-01
logsource:
product: linux
service: kernel
detection:
selection:
- "iommu: command queue timeout"
- "riscv-iommu: command queue full"
- "kernel BUG at drivers/iommu/riscv/iommu.c"
- "riscv-iommu: Failed to publish command"
condition: selection
falsepositives:
- Hardware faults
- Other IOMMU driver issues
level: high
YARA Rule
rule CVE_2026_98004_RISC_V_IOMMU_RACE
{
meta:
description = "Detects Linux kernel binary strings related to RISC-V IOMMU command queue handling"
author = "Threat Intelligence"
date = "2026-01-01"
reference = "CVE-2026-98004"
strings:
$s1 = "riscv-iommu" ascii wide nocase
$s2 = "command queue full" ascii wide nocase
$s3 = "iommu/riscv" ascii wide nocase
condition:
any of them
}
Suricata IDS Rule
alert ip any any -> any any (msg:"CVE-2026-98004 Linux RISC-V IOMMU Command Queue Race Attempt"; content:"riscv-iommu"; flow:to_server; classtype:attempted-admin; sid:10000001; rev:1;)
Note: Network detection is limited because the vulnerability is local; this rule targets potential exploit delivery over the network if a remote attacker is uploading a crafted binary.
Elastic Detection
process where process.name == "kernel" and message like~ "*riscv-iommu*" and message like~ "*command queue*"
Splunk SPL Query
index=linux_syslog (sourcetype=syslog OR sourcetype=kernel) ("riscv-iommu" OR "iommu/riscv") ("command queue" OR "publish" OR "timeout")
| stats count by host, message
| where count > 0
Wazuh OSSEC Rule
<group name="linux,kernel,">
<rule id="100001" level="12">
<decoded_as>syslog</decoded_as>
<match>riscv-iommu</match>
<match>command queue</match>
<description>CVE-2026-98004: RISC-V IOMMU command queue anomaly detected</description>
<mitre>
<id>T1068</id>
</mitre>
</rule>
</group>
Mitigation & Patch Guidance
Patch confidence: 0/4 (UNPATCHED — no patch evidence from any tracked source).
Immediate mitigations:
- Disable the RISC-V IOMMU driver if not strictly required: blacklist the module or build kernel without CONFIG_RISCV_IOMMU.
- Restrict local access to untrusted users and VMs; avoid running untrusted workloads on RISC-V hosts with IOMMU enabled.
- Monitor kernel logs for IOMMU-related errors and apply watchdog resets on panic.
Patch/upgrade steps:
- Monitor upstream Linux kernel stable branches for a fix. The vulnerability was resolved in the mainline kernel (per NVD description), so upgrading to a kernel version that includes the fix is recommended once available. Check with your distribution vendor for backported patches.
- Since no patch is currently tracked, apply the latest kernel updates from your vendor as they become available.
Long-term hardening:
- Follow kernel security mailing lists for RISC-V IOMMU updates.
- Enable kernel hardening features such as CONFIG_DEBUG_ATOMIC_SLEEP and lockdep to detect similar race conditions.
- Isolate IOMMU command queue processing with proper locking in custom drivers.
References
- NVD Entry: https://nvd.nist.gov/vuln/detail/CVE-2026-98004
- Linux Kernel Git Repository (monitor for iommu/riscv fixes): https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
- CWE-362: https://cwe.mitre.org/data/definitions/362.html
- RISC-V IOMMU Specification: https://github.com/riscv-non-isa/riscv-iommu
- Linux Kernel Mailing List (LKML) archives for iommu/riscv discussions.
What is this? Security researchers use these exact search queries on Shodan.io (a search engine for internet-connected devices) to find vulnerable systems globally. You can copy these dorks to see if your organization's IP space is exposed.