Clear wasmtime and rkyv cargo-audit violations - #323
Conversation
wasmtime 45.0.3 is affected by RUSTSEC-2026-0222 (stores can mix up type indices between engines; CVSS 3.8). No fixed 45.x release exists; the nearest fixed lines are 46.0.2 and 47.0.3. Take 47.0.3, the current head, so the next monthly wasmtime release does not force an immediate re-upgrade. Both fixed lines require Rust 1.94, so raise `rust-version` from 1.93 to 1.94 in the root manifest and `crates/ambient-fs`, and update the developers' guide to match. The workspace compiles against wasmtime 47 without source changes; the full test suite passes (database-backed tests and one pre-existing `html_to_markdown` snapshot failure excluded — both fail identically on `main` and are unrelated to this change).
cargo-audit flags rkyv 0.7.46 (RUSTSEC-2026-0235, out-of-bounds reads in archive validation) in the root and fuzz lockfiles. rkyv is an optional dependency of rust_decimal that no enabled feature activates: it is locked but never compiled, and `cargo tree -i rkyv` prints nothing. No rust_decimal release (up to 1.42.1) drops or upgrades the rkyv 0.7 optional dependency, so exclusion from the lockfile is not possible. Add the advisory to the centralized ignore list with the removal condition documented, following the existing convention.
|
Important Review skippedDraft detected. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Comment |
Reviewer's guide (collapsed on small PRs)Reviewer's GuideUpdates the workspace to use wasmtime 47.0.3 and raises MSRV to Rust 1.94 to satisfy a security advisory, while explicitly ignoring an unused rkyv advisory in the centralized cargo-audit configuration; lockfiles are refreshed accordingly. Flow diagram for make audit with new rkyv advisory ignoreflowchart TD
dev[Developer runs make audit]
make_audit[make audit]
cargo_audit[cargo-audit]
audit_flags[AUDIT_FLAGS includes RUSTSEC-2026-0235]
rkyv_advisory[RUSTSEC-2026-0235 on rkyv 0.7.46]
unused_dep[rkyv optional in rust_decimal and not compiled]
result[Audit passes without blocking CI]
dev --> make_audit
make_audit --> audit_flags
audit_flags --> cargo_audit
cargo_audit --> rkyv_advisory
rkyv_advisory --> unused_dep
cargo_audit --> result
File-Level Changes
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
The typos gate rejects `organise` in the prose rendering of a Reddit thread title cited in `docs/rust-doctest-dry-guide.md`. Normalize the citation text to en-GB-oxendict `organize`; the URL slug keeps the original spelling.
Summary
This branch clears the two
make auditviolations that surfaced in theweekly scheduled dependency audit (and block CI on
#322):
between engines, CVSS 3.8): upgrade
wasmtimeandwasmtime-wasito47.0.3, the current fixed head. No fixed 45.x release exists, and both
fixed lines (46.0.2 and 47.0.3) require Rust 1.94, so
rust-versionrises from 1.93 to 1.94 in the root manifest and
crates/ambient-fs,with the developers' guide updated to match. The workspace compiles
against wasmtime 47 with no source changes.
optional dependency of
rust_decimalthat no enabled feature activates —it is locked but never compiled (
cargo tree -i rkyvprints nothing),and no
rust_decimalrelease drops it. Added to the Makefile'scentralized ignore list with the removal condition documented, following
the existing convention.
This PR is the base of a small stack: #322 (Ubicloud runner cost
reduction) now targets this branch and should merge after it.
Review walkthrough
for the wasmtime pin and the MSRV bump.
ignore-list entry and its justification comment.
and crates/ambient-fs/Cargo.toml
carry the matching MSRV references.
fuzz/Cargo.lock)
change only wasmtime and its
cap-std-family dependencies.Validation
make audit: all 17 manifests pass, including root andfuzz/.make check-fmt: clean.make lint(clippy, all three feature configurations plus the GitHubtool): clean. The whitaker stage reports 102 findings locally, but an
identical 102 occur on a clean
mainworktree — local lint-versiondrift, not introduced here; CI pins whitaker-installer 0.2.6.
cargo nextest run --workspace --features test-helpers: 4,193 passedwith the database-backed trees and one snapshot test excluded. The
Postgres trees fail locally with ident authentication (no local
database), and
html_to_markdown::convert_test_pages_to_markdownfailsidentically on a clean
mainworktree; neither is related to thischange.
Notes
WIT version mismatch; that traced to a stale, gitignored local
channels-src/telegram/telegram.wasmbuilt against WIT 0.3.0, absent inCI. Rebuilding it locally resolved the failures — no repository change
was needed.
wasmtime lines declare
rust-version = "1.94.0".Summary by Sourcery
Raise the minimum supported Rust version and update sandboxing dependencies to resolve security advisories and clean the dependency audit.
Enhancements:
Build:
Documentation: