CVE-2026-29646
Official description Straight from the sourceThe vendor's or NVD's own wording, published unedited. Authoritative, but often terse — it says what broke, rarely what to do.
NVD · uneditedIn OpenXiangShan NEMU prior to 55295c4, when running with RVH (Hypervisor extension) enabled, a VS-mode guest write to the supervisor interrupt-enable CSR (sie) may be handled incorrectly and can influence machine-level interrupt enable state (mie). This breaks privilege/virtualization isolation and can lead to denial of service or privilege-boundary violation in environments relying on NEMU for correct interrupt virtualization.
Technical summary Written by usOur analysis, written from the advisory, the CVSS vector and the affected-version data. It adds context the advisory leaves out, and never invents facts that are not in the source.
dbcve analysis · moderate confidenceIn OpenXiangShan NEMU with RVH (Hypervisor extension) enabled, a VS-mode guest's write to the supervisor interrupt-enable CSR (sie) is incorrectly handled and improperly modifies the machine-level interrupt enable state (mie), violating privilege isolation between VS and machine modes.
Verify against the referenced sources before acting — the references below are authoritative for this CVE, this summary is not.
CVSS breakdown How the score is builtThe industry scoring standard. It rates how the flaw is reached, what it takes to exploit, and what an attacker gains — the score is derived from those, not the other way round.
From the vector- Attack vector
- Network
- Complexity
- Low
- Privileges
- None
- User interaction
- None
- Scope
- Unchanged
- Confidentiality
- High
- Integrity
- High
- Availability
- High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Am I affected? How to checkSteps we derive from the advisory and the affected-version data, so you can decide whether this CVE reaches your setup. They are a guide, not a scan — your own configuration is the authority.
dbcve checksWork through these to decide whether this CVE applies to you.
-
Check if NEMU is built with RVH (Hypervisor extension) support enabledInspect NEMU build configuration or run 'grep -r "RHV\|rvh" config' in the build directory. Look for CONFIG_RVH or similar hypervisor enable flags in the NEMU build configuration files.Affected if CONFIG_RVH or hypervisor support is enabled in the NEMU build configuration
-
Verify NEMU version or commit hashRun 'git log --oneline -1' in the NEMU source directory or check NEMU version output. Compare the commit hash to 55295c4.Affected if The installed NEMU version is older than the commit containing fix 55295c4 (i.e., the commit hash is earlier in history than 55295c4)
-
Confirm hypervisor extension is active at runtimeRun NEMU with a guest that uses VS (Virtual Supervisor) mode and verify that the hypervisor extension is enumerated. Check CPUID or device tree for hypervisor bit presence, or inspect NEMU runtime logs for RVH/hypervisor initialization messages.Affected if RVH/hypervisor extension is reported as available or enabled in the emulated system
-
Test sie CSR behavior from VS-mode guestFrom a VS-mode guest OS, write to the sie CSR (Supervisor Interrupt Enable) and then read the mie CSR (Machine Interrupt Enable) to verify mie was not modified. Alternatively, compare the mie value before and after sie writes from VS-mode.Affected if Writing to sie from VS-mode guest incorrectly modifies the machine-level mie register, indicating the vulnerability is present
-
Inspect NEMU source code for sie handling in VS-modeIn the NEMU source, locate the CSR handling code for sie (likely in src/isa/riscv/insn/csrmod.c or similar). Check if sie writes route through to mie when in VS-mode with RVH enabled, by examining the write handler for sie CSR.Affected if The sie CSR write handler directly modifies mie when executed from VS-mode with RVH enabled (code analysis confirms the bug)
A user is affected if NEMU is built with RVH/hypervisor support enabled, runs an older version before commit 55295c4, and executes a VS-mode guest where sie CSR writes improperly alter machine-level mie state.
Generated from the published advisory. Verify against your own configuration.
Remediation Closing itWhat it takes to close this. Where a vendor fix exists we point at it; where none exists we say so plainly, and can build one. Effort estimates are scoped from the advisory, not from your codebase.
dbcve · scopedUpgrade NEMU to version containing commit 55295c4 which corrects the sie CSR handling to properly virtualize interrupt enable bits without affecting machine-level mie state.
Upgrade to commit 55295c4 or later in the OpenXiangShan NEMU repository
- 1. Identify current NEMU version by checking the git commit hash in your deployment
- 2. Clone or pull the latest OpenXiangShan NEMU repository: git clone https://github.com/OpenXiangShan/NEMU.git
- 3. Navigate to the NEMU directory: cd NEMU
- 4. Fetch the latest changes: git fetch origin
- 5. Check out the fixed commit 55295c4 or a later version: git checkout 55295c4 (or git checkout <latest_tag> for tagged releases)
- 6. Rebuild NEMU according to the build instructions in the repository README
- 7. Verify the fix is applied by confirming the commit 55295c4 is in the git history: git log --oneline | head -10
- 8. Test the build with RVH (Hypervisor extension) enabled to confirm proper interrupt virtualization behavior
Generated from the published advisory — verify against the referenced sources before acting.
- Consultation4.0 h
- Implementation8.0 h
- Testing8.0 h
- Review / QA4.0 h
An estimate, not a bill — we confirm scope with you before any work starts. Need it this week? Rush from $6,656.
Scan for this in your stack
Free · runs locallyCheck whether your project pulls in CVE-2026-29646 — or any other known-vulnerable package — straight from your lock files. Free and open source; it runs locally and uploads nothing.
References Go to the primary sourcePrimary sources — vendor advisories, patches and trackers. Where our summary and a reference disagree, the reference wins.
Primary sourcesPractitioner notes
ContributedPeer-ranked notes from engineers who’ve handled CVE-2026-29646 in production — separate from our analysis above.
The advisory tells you what broke. It rarely tells you what actually worked. If you’ve dealt with this one, that detail is what the next engineer is searching for.
- The version that genuinely resolved it — not the one the vendor claimed
- A config change or rule that shut the vector down
- A gotcha in the upgrade path that cost you an afternoon
No notes yet
Be the first to add a field note for this CVE — a mitigation you’ve verified, a version caveat, or a link to a working fix. Sign in above to contribute.
A place for practitioners to share what actually worked: a mitigation you’ve tested, a configuration change, a version- or environment-specific caveat, or a link to a verified patch. The most useful notes rise to the top as peers upvote them, so the signal stays high.
- Verified mitigations, workarounds, and config changes
- Version or environment caveats, and links to real fixes
- No weaponised exploit code, or anything meant to cause harm
- No spam, self-promotion, credentials, or personal data