Skip to content

fix(deps): upgrade wasmtime to 42.0.2 to resolve security advisories#282

Merged
streamer45 merged 1 commit intomainfrom
devin/1775844808-fix-wasmtime-advisory
Apr 10, 2026
Merged

fix(deps): upgrade wasmtime to 42.0.2 to resolve security advisories#282
streamer45 merged 1 commit intomainfrom
devin/1775844808-fix-wasmtime-advisory

Conversation

@staging-devin-ai-integration
Copy link
Copy Markdown
Contributor

@staging-devin-ai-integration staging-devin-ai-integration bot commented Apr 10, 2026

Summary

Upgrades wasmtime and wasmtime-wasi from 41.0.1 to 42.0.2 to fix 7 security vulnerabilities flagged by cargo deny check advisories, which started failing the CI lint step today:

Advisory Description
RUSTSEC-2026-0089 Sandbox escape via Cranelift on aarch64
RUSTSEC-2026-0091 Out-of-bounds write in component model string transcoding
RUSTSEC-2026-0092 Panic on misaligned UTF-16 strings
RUSTSEC-2026-0093 Heap OOB read in UTF-16 to latin1+utf16 transcoding
RUSTSEC-2026-0094 Improperly masked table.grow return value (Winch)
RUSTSEC-2026-0095 Sandbox-escaping memory access (Winch)
RUSTSEC-2026-0096 Miscompiled guest heap access on aarch64 Cranelift

Also removes the deprecated Config::async_support() call which no longer has any effect in wasmtime 42 (async is now always available).

Changes:

  • crates/plugin-wasm/Cargo.toml: bump wasmtime deps from 41.0.1 → 42.0.2
  • crates/plugin-wasm/src/lib.rs: remove deprecated async_support(true) call
  • Cargo.lock: updated lockfile

Review & Testing Checklist for Human

  • Verify the WASM plugin system still works correctly — load a .wasm plugin and confirm it processes data as expected (the async_support removal is the only code change; wasmtime 42 enables async by default)
  • Confirm just lint-skit passes (specifically cargo deny check advisories)
  • Optionally spot-check the wasmtime 42.0.0 changelog for any behavioral changes that could affect plugin execution

Notes

  • The upgrade targets 42.0.2 (the minimum patched version in the 42.x series) rather than jumping to 43.x to minimize API surface changes.
  • cargo check confirms full API compatibility — no other code changes were needed beyond removing the deprecated call.
  • The lint-plugins recipe has a pre-existing failure on this dev machine (missing fontconfig system library) unrelated to this change.

Link to Devin session: https://staging.itsdev.in/sessions/a61e4601412d442d9a9efdfa64e9eb20
Requested by: @streamer45


Staging: Open in Devin

Upgrade wasmtime and wasmtime-wasi from 41.0.1 to 42.0.2 to fix 7
security vulnerabilities flagged by cargo-deny:

- RUSTSEC-2026-0089: sandbox escape via Cranelift aarch64
- RUSTSEC-2026-0091: OOB write in component model string transcoding
- RUSTSEC-2026-0092: panic on misaligned UTF-16 strings
- RUSTSEC-2026-0093: heap OOB read in UTF-16 to latin1+utf16 transcoding
- RUSTSEC-2026-0094: improperly masked table.grow return value (Winch)
- RUSTSEC-2026-0095: sandbox-escaping memory access (Winch)
- RUSTSEC-2026-0096: miscompiled guest heap access on aarch64

Also removes the deprecated Config::async_support() call which no
longer has any effect in wasmtime 42.

Signed-off-by: StreamKit Devin <devin@streamkit.dev>
Co-Authored-By: Claudio Costa <cstcld91@gmail.com>
@staging-devin-ai-integration
Copy link
Copy Markdown
Contributor Author

🤖 Devin AI Engineer

I'll be helping with this pull request! Here's what you should know:

✅ I will automatically:

  • Address comments on this PR. Add '(aside)' to your comment to have me ignore it.
  • Look at CI failures and help fix them

Note: I can only respond to comments from users who have write access to this repository.

⚙️ Control Options:

  • Disable automatic comment and CI monitoring

Copy link
Copy Markdown
Contributor Author

@staging-devin-ai-integration staging-devin-ai-integration bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Devin Review found 1 potential issue.

View 1 additional finding in Devin Review.

Staging: Open in Devin
Debug

Playground

Comment on lines 74 to 77
let mut engine_config = Config::new();
engine_config.wasm_component_model(true);
engine_config.async_support(true);
engine_config.wasm_simd(config.enable_simd);
engine_config.wasm_threads(config.enable_threads);
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚩 Removal of async_support(true) — relies on wasmtime 42 feature-flag behavior

The removal of engine_config.async_support(true) at crates/plugin-wasm/src/lib.rs:76 (old line) is the only behavioral change in this PR. The code still heavily uses async APIs: add_to_linker_async at line 83, instantiate_async at line 137, and many async call_* methods in crates/plugin-wasm/src/wrapper.rs:102,151,200,258,313. In older wasmtime versions, calling _async methods without Config::async_support(true) would cause a runtime panic (not a compile error). The async Cargo feature is still specified in Cargo.toml:18, and wasmtime-internal-fiber (the async stack-switching infrastructure) is present in Cargo.lock, suggesting async support is compiled in. The most likely explanation is that wasmtime 42 moved async_support control entirely to the Cargo feature flag, making the Config method either removed or redundant. However, since the wasmtime 42 source isn't locally available, this should be verified — ideally by running the WASM plugin tests or checking wasmtime 42 release notes to confirm the async feature auto-enables async support.

Staging: Open in Devin

Was this helpful? React with 👍 or 👎 to provide feedback.

Debug

Playground

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The removal is safe — wasmtime 42 emits a deprecation warning (use of deprecated method 'wasmtime::Config::async_support': no longer has any effect) when this method is called, confirming async support is now unconditionally available when the async Cargo feature is enabled (which it is in our Cargo.toml). Keeping the call would produce a CI warning on every build.

@streamer45 streamer45 merged commit 9f2742e into main Apr 10, 2026
17 checks passed
@streamer45 streamer45 deleted the devin/1775844808-fix-wasmtime-advisory branch April 10, 2026 18:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants