CVE-2026-27195

7.5 HIGH

📋 TL;DR

A bug in Wasmtime's async component model implementation causes a panic when call_async futures are dropped before completion and then called again on the same component instance. This affects Wasmtime users who use the component-model-async feature with affected versions. The vulnerability leads to denial of service through application crashes.

💻 Affected Systems

Products:
  • Wasmtime
Versions: 39.0.0 through 41.0.3 (excluding 40.0.4 and 41.0.4)
Operating Systems: All platforms running Wasmtime
Default Config Vulnerable: ⚠️ Yes
Notes: Only affects installations with component-model-async feature enabled (default from 39.0.0). Versions 42.0.0+ are not affected.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Application crashes and becomes unavailable, causing denial of service for all users of the affected service.

🟠

Likely Case

Intermittent application crashes when async component functions are improperly handled, leading to service disruptions.

🟢

If Mitigated

No impact if proper async handling practices are followed or if the component-model-async feature is disabled.

🌐 Internet-Facing: MEDIUM - Could cause service outages for web applications using Wasmtime with async components.
🏢 Internal Only: MEDIUM - Could disrupt internal services and applications using affected Wasmtime versions.

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: NO
Unauthenticated Exploit: ✅ No
Complexity: MEDIUM

Exploitation requires specific async programming patterns and access to call async component functions. Not easily weaponized for remote code execution.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 40.0.4, 41.0.4, or 42.0.0+

Vendor Advisory: https://github.com/bytecodealliance/wasmtime/releases/tag/v40.0.4

Restart Required: Yes

Instructions:

1. Update Wasmtime to version 40.0.4, 41.0.4, or 42.0.0+. 2. Rebuild and redeploy applications using Wasmtime. 3. Restart affected services.

🔧 Temporary Workarounds

Disable component-model-async feature

all

Disable the vulnerable feature if not needed

Add 'default-features = false' to Wasmtime dependency in Cargo.toml
Remove 'component-model-async' from features list

Proper async future handling

all

Ensure all call_async futures are awaited to completion

Modify code to await all async function calls: let result = func.call_async(...).await;

🧯 If You Can't Patch

  • Disable component-model-async feature in Cargo.toml configuration
  • Implement strict async handling patterns: never drop unresolved call_async futures

🔍 How to Verify

Check if Vulnerable:

Check Wasmtime version and if component-model-async feature is enabled: cargo tree | grep wasmtime

Check Version:

wasmtime --version or check Cargo.lock for wasmtime version

Verify Fix Applied:

Verify Wasmtime version is 40.0.4, 41.0.4, or 42.0.0+: wasmtime --version

📡 Detection & Monitoring

Log Indicators:

  • Panic messages containing 'thread panicked' or 'component instance cannot be entered'
  • Application crash logs with Wasmtime stack traces

Network Indicators:

  • Sudden service unavailability
  • Increased error rates in async WebAssembly operations

SIEM Query:

source="application.logs" AND ("panic" OR "thread panicked") AND "wasmtime"

🔗 References

📤 Share & Export