Skip to content

Bump wasmtime 45 → 47 (RUSTSEC-2026-0222) and drop the deny.toml ignore #116

Description

@avrabe

cargo-deny flagged RUSTSEC-2026-0222 — wasmtime "Stores can mix up type indices between engines" (type confusion / sandbox integrity in the embedding API).

We are on wasmtime 45.0.0. There is no patched 45.x release; the fixes landed in 46.0.2 and 47.0.3 (crates.io also shows backports at 36.0.13 / 24.0.12). So the durable fix is a major bump.

Why it was ignored rather than fixed inline

PR #115 added a temporary deny.toml ignore to unblock an unrelated feature. Reachability was verified, not assumed:

  • wasmtime is a dependency of scry-host-tests only, which is publish = false
  • cargo metadata confirms no published scry-sai-* crate has wasmtime as a normal dependency
  • the shipped scry.wasm embeds no engine
  • the harness runs our own fixtures against our own composed component — not a multi-tenant sandbox host — so the crafted cross-engine usage the advisory needs has no attack surface here

The work

  1. Bump wasmtime (and wasmtime-wasi) 45 → 47 in the workspace dep table; fix harness API churn across two majors.
  2. Re-run cargo test -p scry-host-tests (the FEAT-013 live gate + soundness oracles all run through this embedding).
  3. Delete the RUSTSEC-2026-0222 entry from deny.toml — the entry itself says to.
  4. While there: RUSTSEC-2026-0182 / -0188 / -0190 / -0204 are all wasmtime/rayon-lineage ignores that a 47 bump may also clear. Re-check and delete any that no longer apply — five standing ignores is a pattern, not a set of exceptions.

Not urgent (dev-only, no shipped exposure), but it should not sit indefinitely — the ignore is time-boxed by intent.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions