Skip to main content

Wasmtime EUVDEUVD-2026-108321

| CVE-2026-115390 MEDIUM
Uncontrolled Resource Consumption (CWE-400)
2026-10-22 disclosure@vulncheck.com GHSA-78f8-6g96-699x
6.9
CVSS 4.0 · Vendor: vulncheck
View

Attack ChainAIDerived

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

  1. Access
    Submit guest module with call_ref/try_table
  2. Delivery
    Invoke calls that reset consumed-fuel accounting
  3. Exploit
    Amplify runtime exponentially on linear fuel
  4. Execution
    Evade fuel timeout/periodic yields
  5. Impact
    Exhaust host execution time (DoS)

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V2 - Validation and Business Logic Resource consumption limits
MITRE ATT&CK

1 technique across 1 tactic: Impact

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires ALL of the following, per the vendor advisory: (1) fuel metering must be explicitly enabled via Config::consume_fuel or -W fuel=N - this is OFF by default; (2) the Cranelift backend must be in use - this is the default unless Winch is configured, and it also covers Pulley interpreter users; (3) the guest must contain the call_ref opcode (function-references proposal) or the try_table opcode (exception-handling proposal), both supported by default since Wasmtime 47.0.0; and (4) the attacker must be able to supply or run a crafted guest module. LIMITING FACTORS: because fuel is disabled by default, the vast majority of deployments are not exposed; embedders using epoch interruption (Config::epoch_interruption) instead of fuel are unaffected by this bug, though epoch interruption is not deterministic. Affected only in version ranges >= 47.0.0 < 48.0.3 and 49.0.0 < 49.0.1.

Impact

This is a medium-severity denial-of-service issue (vendor CVSS 4.0 base 6.9; CWE-400 uncontrolled resource consumption) whose real-world risk is gated hard by configuration rather than by raw reachability. The 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:P) shows availability as the only impact (VC:N/VI:N/VA:H) with no confidentiality or integrity effect and no scope change to other systems - consistent with a timeout/yield-evasion DoS, not code execution or escape. The vuln.today priority is 'this_month' (not act_now/emergency). There is no CISA KEV listing and no EPSS score in the provided data, so widespread automated exploitation cannot be inferred; absence of these signals is not evidence of safety but does not elevate urgency. No exploit or PoC reference is present in the input - only the GHSA and VulnCheck advisories - so this is 'no public exploit identified at time of analysis.' The dominant risk driver is the precondition: fuel metering (Config::consume_fuel / -W fuel=N) must be explicitly enabled, which is OFF by default, and the guest must contain call_ref or try_table opcodes. For embedders that rely on fuel as their only deterministic timeout/yield mechanism against untrusted guests, this is a genuine priority because it defeats the exact control they depend on; for the majority who leave fuel disabled or use epoch interruption, real exposure is low. The vendor-assigned PR:L (an attacker able to supply/run a guest module) is appropriate for a WebAssembly runtime threat model where guests are inherently untrusted.

Exploit ScenarioDerived

An embedder runs untrusted WebAssembly guests under Wasmtime's Cranelift backend and relies on fuel metering (Config::consume_fuel) to bound execution time. A malicious guest containing call_ref or try_table opcodes structures recursive/exceptional call paths so that fuel consumed inside callees is dropped and reset to the pre-call remaining fuel, achieving exponential runtime on linear fuel and evading the fuel-based timeout, thereby hanging or starving the host. No public exploit code is identified in the provided sources, though the mechanism is described in detail in the GHSA advisory.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.2% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Oct 22, 2026

Denial of service in Wasmtime: Cranelift-compiled call_ref callsites and the exceptional catch path of try_table mishandle fuel accounting, so a crafted guest can drop the fuel consumed inside a callee and reset to the pre-call remaining balance, letting it run for exponential time on linear fuel and evade timeouts and periodic yields. Exposure is gated hard by configuration - fuel metering is off by default (Config::consume_fuel or -W fuel=N on the CLI), the Cranelift backend must be used (the default unless Winch is configured, and it also covers Pulley interpreter users), and the guest must actually contain the call_ref or try_table opcode. Only Wasmtime 47.0.0 through 48.0.2 and 49.0.0 are affected; 48.0.3 and 49.0.1 contain the fix, no public exploit was identified at time of analysis, and the vendor rates this medium severity at CVSS 4.0 6.9 (CWE-400 uncontrolled resource consumption).

RemediationAI

Upgrade to Wasmtime 48.0.3 (for the 48.x line) or 49.0.1 (for the 49.x line); these are the exact fixed versions published for this advisory, and patched releases for older branches are not listed, so hosts still on 47.0.0-48.0.2 must move to 48.0.3 or later. Before treating an upgrade as urgent, confirm exposure: check whether fuel is enabled via Config::consume_fuel in the embedder or -W fuel=N on the wasmtime CLI, whether the Cranelift backend is in use (default unless Winch was configured, and note Pulley interpreter users are affected), and whether any untrusted guest can carry the call_ref or try_table opcodes - scanning guest bytecode for those opcodes is the vendor-suggested way to check specific cases. For embedders that only need periodic interruption rather than deterministic metering, switching to epoch interruption (Config::epoch_interruption) avoids this defect, with the trade-off that epoch-based interruption is time/wall-clock driven and is not deterministic in the way fuel is; if deterministic fuel consumption metering is a requirement, the advisory states that upgrading to a fixed version is the only workaround. Advisory: https://github.com/bytecodealliance/wasmtime/security/advisories/GHSA-m63x-6p34-q65x.

Affected VersionsENISA

wasmtime 47.0.0 <48.0.3
wasmtime 49.0.0 <49.0.1

Affected Packages

cargo wasmtime fix: 48.0.3, 49.0.1

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in cargo

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

Technical ContextAI · show details

Wasmtime's fuel mechanism is a deterministic resource-metering feature: a fixed budget of "fuel" is decremented as compiled code executes, and when the budget is exhausted execution traps, which embedders rely on for bounded runtimes and regular periodic yields. In the Cranelift code generator, the fuel bookkeeping around call_ref callsites and around the exception catch path for calls inside try_table blocks could discard the fuel accumulated while executing the callee, restoring the remaining-fuel value recorded before the call. Because the deficit is not charged back, each call effectively refunds work already done; nesting such calls yields exponential amplification of runtime for linear fuel consumption, which is CWE-400 uncontrolled resource consumption. The affected opcodes come from two WebAssembly proposals - call_ref from function-references and try_table from exception-handling - both enabled by default since Wasmtime 47.0.0, which is why the advisory scopes the affected ranges to >= 47.0.0, < 48.0.3 and 49.0.0 < 49.0.1. The flaw applies to any configuration compiling with Cranelift, which is the default unless Winch is configured, and it extends to users of the Pulley interpreter; the trigger path is the vendor-described fuel-accounting drop at those specific callsites, not a generic memory-safety or race condition. Epoch interruption (Config::epoch_interruption) is a separate, independently implemented interruption mechanism and is not affected by this bug, though it is not deterministic like fuel.

Know when Webassembly gets its next vulnerability

  • 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 (vulncheck) PRIMARY 6.9 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:P/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
vuln.today AI 5.3 MEDIUM

Attacker must supply an untrusted guest (PR:L) and the embedder must have enabled non-default fuel metering with a Cranelift build (AC:H); impact is availability-only DoS, no scope change.

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

Primary rating from Vendor (vulncheck).

CVSS VectorVendor: vulncheck

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
Low
User Interaction
Passive
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
None
Vulnerable system: Availability
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

1
Patch available
Oct 22, 2026 - 20:18 EUVD

DescriptionCVE.org

Wasmtime 47.0.0 before 48.0.3 and 49.0.0 before 49.0.1 contains a fuel accounting flaw in Cranelift-compiled call_ref and try_table catch paths. Malicious guests can reset consumed fuel after calls to run exponentially long on linear fuel, evading timeouts and periodic yields for denial of service.

Threat Intelligence Overview

EPSS Score
0.2%
Top 92% exploitable
Prevalence
Medium
widely-used WebAssembly runtime, but fuel metering is off by default
Data Quality
5 sources
Confidence: Medium
EUVD NVD CVE.org EPSS Vulnrichment Vendor GitHub

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 MEDIUM
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.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
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

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

Attack Technique

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

CVE-2023-27117 HIGH POC
7.8 Mar 10

WebAssembly v1.0.29 was discovered to contain a heap overflow via the component component wabt::Node::operator. Rated hi

CVE-2022-43281 HIGH POC
7.8 Oct 28

wasm-interp v1.0.29 was discovered to contain a heap overflow via the component std::vector<wabt::Type, std::allocator<w

CVE-2023-31670 HIGH POC
7.5 May 23

An issue in wasm2c 1.0.32, wasm2wat 1.0.32, wasm-decompile 1.0.32, and wasm-validate 1.0.32 allows attackers to cause a

CVE-2021-45290 HIGH POC
7.5 Dec 21

A Denial of Service vulnerability exits in Binaryen 103 due to an assertion abort in wasm::handle_unreachable. Rated hig

CVE-2026-90648 HIGH POC
7.1 Sep 12

Sandbox escape in wasm2c (wabt ≤ 1.0.41) allows an attacker controlling WebAssembly content to achieve arbitrary read/wr

CVE-2022-43282 HIGH POC
7.1 Oct 28

wasm-interp v1.0.29 was discovered to contain an out-of-bounds read via the component OnReturnCallIndirectExpr->GetRetur

CVE-2022-43280 HIGH POC
7.1 Oct 28

wasm-interp v1.0.29 was discovered to contain an out-of-bounds read via the component OnReturnCallExpr->GetReturnCallDro

CVE-2019-15759 MEDIUM POC
6.5 Aug 29

An issue was discovered in Binaryen 1.38.32. Rated medium severity (CVSS 6.5), this vulnerability is remotely exploitabl

CVE-2019-15758 MEDIUM POC
6.5 Aug 29

An issue was discovered in Binaryen 1.38.32. Rated medium severity (CVSS 6.5), this vulnerability is remotely exploitabl

CVE-2019-7704 MEDIUM POC
6.5 Feb 10

wasm::WasmBinaryBuilder::readUserSection in wasm-binary.cpp in Binaryen 1.38.22 triggers an attempt at excessive memory

CVE-2019-7703 MEDIUM POC
6.5 Feb 10

In Binaryen 1.38.22, there is a use-after-free problem in wasm::WasmBinaryBuilder::visitCall in wasm-binary.cpp. Rated m

CVE-2019-7702 MEDIUM POC
6.5 Feb 10

A NULL pointer dereference was discovered in wasm::SExpressionWasmBuilder::parseExpression in wasm-s-parser.cpp in Binar

Vendor StatusVendor

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