Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessSubmit guest module with call_ref/try_table
-
DeliveryInvoke calls that reset consumed-fuel accounting
-
ExploitAmplify runtime exponentially on linear fuel
-
ExecutionEvade fuel timeout/periodic yields
-
ImpactExhaust 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. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – 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
Affected Packages
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
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
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.
Primary rating from Vendor (vulncheck).
CVSS VectorVendor: vulncheck
Lifecycle Timeline
1DescriptionCVE.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
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.
More in Webassembly
View allWebAssembly v1.0.29 was discovered to contain a heap overflow via the component component wabt::Node::operator. Rated hi
wasm-interp v1.0.29 was discovered to contain a heap overflow via the component std::vector<wabt::Type, std::allocator<w
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
A Denial of Service vulnerability exits in Binaryen 103 due to an assertion abort in wasm::handle_unreachable. Rated hig
Sandbox escape in wasm2c (wabt ≤ 1.0.41) allows an attacker controlling WebAssembly content to achieve arbitrary read/wr
wasm-interp v1.0.29 was discovered to contain an out-of-bounds read via the component OnReturnCallIndirectExpr->GetRetur
wasm-interp v1.0.29 was discovered to contain an out-of-bounds read via the component OnReturnCallExpr->GetReturnCallDro
An issue was discovered in Binaryen 1.38.32. Rated medium severity (CVSS 6.5), this vulnerability is remotely exploitabl
An issue was discovered in Binaryen 1.38.32. Rated medium severity (CVSS 6.5), this vulnerability is remotely exploitabl
wasm::WasmBinaryBuilder::readUserSection in wasm-binary.cpp in Binaryen 1.38.22 triggers an attempt at excessive memory
In Binaryen 1.38.22, there is a use-after-free problem in wasm::WasmBinaryBuilder::visitCall in wasm-binary.cpp. Rated m
A NULL pointer dereference was discovered in wasm::SExpressionWasmBuilder::parseExpression in wasm-s-parser.cpp in Binar
EUVD-2026-108321
GHSA-78f8-6g96-699x
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB