Repository navigation
fix(deps): bump wasmtime to 48.0.7 for RUSTSEC-2026-0379 and -0378 - #2767
Merged
Merged
Conversation
Two advisories against wasmtime 48.0.6 were published 2026-10-19 and now redden the `Audit` job on every PR and on main, because `cargo audit` scans every lockfile in the tree regardless of the diff: - RUSTSEC-2026-0379, severity 9.9 (critical): the Cranelift backend on aarch64 can jump to an incorrect target on a large Wasm `br_table`. - RUSTSEC-2026-0378, severity 5.7 (medium): panic lowering a host-created component-model stream into a guest expecting a different payload type. 48.0.7 is the in-line fix, so the exact pin moves `=48.0.6` -> `=48.0.7` and stays on the 48.x line. That matters: 48.x is the newest line supporting the pinned rustc 1.95, and the alternative remedies (>=49.0.4, or the 36.x backport) would mean a toolchain bump or a major downgrade. This is why wasmtime sits in dependabot's `ignore` list — the 49.x bump it would propose is the one that cannot land, while this patch can. All three lockfiles carrying wasmtime move together, since the root pin, the fuzz workspace and the hyperlight host example resolve it independently: `Cargo.lock`, `crates/bashkit/fuzz/Cargo.lock`, `examples/hyperlight/host/Cargo.lock`. `cargo vet` needs no new exemptions. The bytecodealliance import — wasmtime's own maintainers' audits — already covers the 48.0.7 crates, so only `imports.lock` refreshes and the audited share of the graph is unchanged.
Deploying with
|
| Status | Name | Latest Commit | Preview URL | Updated (UTC) |
|---|---|---|---|---|
| ✅ Deployment successful! View logs |
bashkit | 16f59a9 | Commit Preview URL Branch Preview URL |
Oct 20 2026, 11:40 AM |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What changed
wasmtime
=48.0.6→=48.0.7, across the exact workspace pin and all threelockfiles that resolve wasmtime independently:
Cargo.lock,crates/bashkit/fuzz/Cargo.lock,examples/hyperlight/host/Cargo.lock.cargo vetneeds no new exemptions — the bytecodealliance import, which iswasmtime's own maintainers' audit set, already covers the 48.0.7 crates, so only
imports.lockrefreshes.Why
Two advisories against wasmtime 48.0.6 were published 2026-10-19:
br_tablecargo auditscans every lockfile in the tree regardless of the diff, so fromthe moment the advisory database picked these up this reddens the
Auditjob onevery PR and on
main— it first surfaced on an unrelated rustyline bump.It is not a flake; a re-run does not clear it.
48.0.7 is the in-line remedy, which is what makes this a patch rather than a
project. The advisories' other fixed ranges are
>=49.0.4and a36.xbackport; 48.x is the newest line supporting the pinned rustc 1.95, so 49.x
would drag in a toolchain bump and 36.x would be a major downgrade. This is also
why wasmtime sits in dependabot's
ignorelist — the 49.x bump it would proposeis the one that cannot land, while this patch can.
The exact pin is deliberate (
.cwasmartifacts only load into an identicalwasmtime version), so the pin and every lockfile move together in one commit.
Before / After
Before —
Auditonexamples/hyperlight/host/Cargo.lock:After — same scan, clean:
crates/bashkit/fuzz/Cargo.lockandexamples/hyperlight/Cargo.lockalso scanclean.
The risk specific to this pin is that the
cpythonfeature embeds a.cwasmprecompiled by
build.rs, and the pin comment states such artifacts "only loadinto the identical wasmtime version". A patch bump should be fine because
build.rsrecompiles — but that was worth proving rather than assuming, so CI'sown cpython command was run against 48.0.7:
That includes the whole
cpython_security_testssuite — sandbox containment,VFS confinement, timeouts, recursion and output caps all still hold.
Risk
no bashkit source touched.
138-test cpython run above.
bashkit's runtime wasmtime build sets
default-features = falsewith Pulleyand no Cranelift, so the primary runtime path was less exposed than the raw
severity suggests — but
examples/hyperlight/hostdoes enablecranelift,and it is an example runner executing untrusted guest modules in CI, which is
exactly the surface that entry in
.github/dependabot.ymlwas added to watch.Checklist
exercised against the new version; a dependency bump adds no new code
surface to test