CVE-2025-69261: 
NixOS vulnerability analysis and mitigation

Overview

CVE-2025-69261 is an integer overflow (wraparound) vulnerability in the WasmEdge WebAssembly runtime that causes a segmentation fault when processing crafted WebAssembly modules. The flaw exists in WasmEdge/include/runtime/instance/memory.h within the MemoryInstance::getSpan() function, where a multiplication can wrap around, causing checkAccessBound() to incorrectly permit out-of-bounds memory access. It affects WasmEdge versions prior to 0.16.0-alpha.3, specifically confirmed in 0.16.0-alpha.1 and 0.16.0-alpha.2. The vulnerability was disclosed on December 30, 2025, and carries a CVSS v3.1 base score of 7.5 (High) and a CVSS v4.0 base score of 5.5 (Medium) (GitHub Advisory).

Technical details

The root cause is an integer overflow or wraparound (CWE-190) in the getSpan() template function in memory.h. The vulnerable code computes uint32_t ByteSize = static_cast<uint32_t>(sizeof(T) * Size), where multiplying a large Size value (e.g., 0x50000000) by sizeof(T) can overflow a 32-bit integer, producing a small wrapped result that passes the checkAccessBound() check even though the actual memory access is out of bounds. The fix replaces this with overflow-safe arithmetic using __builtin_mul_overflow (GCC/Clang) or a 64-bit intermediate check (MSVC), returning an empty span if overflow is detected (GitHub Commit). A proof-of-concept was included in the advisory: a minimal C program calling __wasi_poll_oneoff() with a count of 0x50000000, compiled to WebAssembly and run under WasmEdge's interpreter mode, reliably triggers a segmentation fault in WasiPollOneoff() (GitHub Advisory).

Impact

Successful exploitation causes a segmentation fault in the WasmEdge runtime process, resulting in a denial of service (crash) of the host application or service running WebAssembly workloads. The impact is limited to availability — there is no evidence of confidentiality or integrity compromise based on current analysis. Environments using WasmEdge to execute untrusted or user-supplied WebAssembly modules (e.g., serverless platforms, edge computing nodes, plugin systems) are at greatest risk, as a malicious Wasm module could crash the runtime (GitHub Advisory, GitHub Commit).

Exploitability

A proof-of-concept exploit was included in the original security advisory, demonstrating reliable crash reproduction with a minimal WebAssembly binary. The vulnerability requires no authentication, no privileges, and no user interaction — an attacker only needs to supply a crafted .wasm file to a vulnerable WasmEdge instance. The EPSS score is approximately 0.042% (low probability of widespread exploitation), and there is no indication of active in-the-wild exploitation or CISA KEV catalog listing as of the time of this report. The CVSS v4.0 exploit maturity is rated as Proof-of-Concept (GitHub Advisory).

Exploitation steps

  1. Craft a malicious WebAssembly module: Write a C program that calls __wasi_poll_oneoff() (or another WASI syscall that internally invokes getSpan()) with a count parameter of 0x50000000 or another large value that causes integer overflow when multiplied by the element size.
  2. Compile to WebAssembly: Use a WASI-compatible compiler such as clang --target=wasm32-wasi --sysroot=/path/to/wasi-sysroot demo.c -o demo.wasm.
  3. Submit to target WasmEdge instance: Execute the crafted module against a vulnerable WasmEdge runtime (versions prior to 0.16.0-alpha.3), e.g., wasmedge run --force-interpreter demo.wasm.
  4. Trigger the overflow: The large count value causes sizeof(T) * Size to wrap around in 32-bit arithmetic, producing a small ByteSize that passes checkAccessBound(), leading to an out-of-bounds memory access and segmentation fault in WasiPollOneoff().
  5. Achieve denial of service: The WasmEdge process crashes, disrupting any service or application relying on it to execute WebAssembly workloads (GitHub Advisory).

Indicators of compromise

  • Process: WasmEdge process terminating with a segmentation fault (SIGSEGV signal); crash dumps or core files generated by the WasmEdge runtime process.
  • Logs: System logs (e.g., /var/log/syslog, journalctl) showing wasmedge process killed with signal 11 (SIGSEGV); application logs indicating unexpected WasmEdge runtime exits.
  • File System: Presence of unexpected .wasm files submitted to the runtime, particularly those invoking WASI poll or I/O syscalls with unusually large count parameters.
  • Network: If WasmEdge is exposed as a service, repeated connection attempts followed by service unavailability may indicate exploitation attempts causing repeated crashes.

Mitigation and workarounds

The WasmEdge project released a patch in version 0.16.0-alpha.3, which replaces the unsafe multiplication with overflow-safe checks using __builtin_mul_overflow on GCC/Clang and a 64-bit intermediate calculation on MSVC. Users should upgrade to WasmEdge 0.16.0-alpha.3 or later immediately. No configuration-based workaround is available; the only effective mitigation is upgrading to the patched version. Fedora package updates addressing this vulnerability have also been released (GitHub Advisory, GitHub Commit).

Community reactions

The vulnerability was discovered and reported by Robert Morris (rtm@mit.edu) of MIT CSAIL, who included a working proof-of-concept in the advisory. The WasmEdge maintainer hydai published the GitHub Security Advisory on December 30, 2025, rating it as Moderate severity. Fedora security updates for WasmEdge addressing this CVE were noted in Linux security community channels in mid-2026, and the issue received coverage in German Linux security news (GitHub Advisory).

Additional resources

Linux Distribution fix status

Fix availability across major Linux distributions and their releases.

Debian

Fixed

sid

wasmedge: 0.16.0+dfsg-1

Fixed

trixie

wasmedge

Affected

Ubuntu

Unknown

devel

wasmedge

Unknown

noble

wasmedge

Unknown

noble (esm-apps)

wasmedge

Unknown

resolute

wasmedge

Unknown

resolute (esm-apps)

wasmedge

Unknown

RHEL / CentOS

Affected

OpenShift

openshift/ose-rhel-coreos-9

Affected

Source: This report was generated using AI

Related NixOS vulnerabilities:

CVE ID

Severity

Score

Technologies

Component name

CISA KEV exploit

Has fix

Published date

CVE-2026-112940HIGH7.1
  • Python logoPython
  • py3-filelock
NoYesOct 20, 2026
CVE-2026-112937MEDIUM6.1
  • Python logoPython
  • python-filelock
NoYesOct 20, 2026
CVE-2026-112936MEDIUM6.1
  • Python logoPython
  • python-filelock
NoYesOct 20, 2026
CVE-2026-112939MEDIUM4.7
  • Python logoPython
  • python-filelock
NoYesOct 20, 2026
CVE-2026-112941LOW3.3
  • Python logoPython
  • filelock
NoYesOct 20, 2026

Free Vulnerability Assessment

Benchmark your Cloud Security Posture

Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.

Request assessment

Additional Wiz resources

Get a personalized demo

Ready to see Wiz in action?

"Best User Experience I have ever seen, provides full visibility to cloud workloads."
David EstlickCISO
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
Adam FletcherChief Security Officer
"We know that if Wiz identifies something as critical, it actually is."
Greg PoniatowskiHead of Threat and Vulnerability Management