Update anyhow, memmap2 and quick-xml for security advisories#274
Merged
Conversation
Three advisories against the locked tree have fixes available in range: - anyhow 1.0.102 -> 1.0.104: unsoundness in Error::downcast_mut() (RUSTSEC-2026-0190, fixed in 1.0.103). Direct dependency, all platforms. - memmap2 0.9.10 -> 0.9.11: unchecked pointer offset (RUSTSEC-2026-0186). Reached through winit/smithay-client-toolkit on the Linux window path. - quick-xml 0.39.4 -> 0.41.0: quadratic run time on duplicate attribute names and unbounded namespace-declaration allocation (RUSTSEC-2026-0194, RUSTSEC-2026-0195). Build-time only, via the wayland-scanner proc-macro parsing the protocol XML shipped in the crate, so neither is reachable from guest or user input; taken because it is free. wayland-scanner moves 0.31.10 -> 0.31.11 as the parent that allows the quick-xml bump. Deliberately surgical: a full cargo update moves 97 crates, which is not a change to make on the eve of a release. Nothing else in the lock has a fix available. bincode 1.3.3, paste 1.0.15 and ttf-parser 0.25.1 carry unmaintained notices with no patched version; bincode in particular is the save-state encoding, so a 1 -> 2 migration would invalidate every existing state and is not a drive-by change. The wasmtime 27.0.0 advisories are not reachable in this configuration: the engine is Cranelift-only (no Winch), builds without the WASI, component model and threads features, sets wasm_simd(false) in make_engine, and uses the default allocator rather than the pooling one, which between them exclude every advisory covering 27.x. The aarch64 Cranelift sandbox escape (GHSA-jhxm-h53p-jm7w) is introduced in 32.0.0, so 27 predates it; the RustSec mirror over-reports it with a range starting at zero. Worth tracking separately that 27.x is an unsupported line receiving no backports, and that the pin exists for save-state determinism of plugin linear memory. cargo-sources.json regenerated for the new lock, as the Flatpak workflow fails on a stale file.
Contributor
There was a problem hiding this comment.
Pull request overview
Updates a small set of Rust dependencies specifically to pick up fixes for reported security advisories, while keeping the dependency tree otherwise stable ahead of a release.
Changes:
- Bump
anyhowto 1.0.104 to address RUSTSEC-2026-0190. - Bump
memmap2to 0.9.11 to address RUSTSEC-2026-0186. - Bump
quick-xmlto 0.41.0 (andwayland-scannerto 0.31.11) to address RUSTSEC-2026-0194 / -0195, and keep build-time Wayland XML scanning in sync.
Reviewed changes
Copilot reviewed 1 out of 2 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
| packaging/flatpak/cargo-sources.json | Regenerates Flatpak vendored crate source entries (URLs, SHA256s, dest paths) to match the updated locked crate versions. |
| Cargo.lock | Locks updated versions/checksums for anyhow, memmap2, quick-xml, and wayland-scanner in line with the stated advisory-driven bumps. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
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.
Audited the locked tree against the OSV/RustSec advisory database ahead of the
release. Three advisories have fixes available in range; this takes them and
nothing else.
Taken
anyhow1.0.102Error::downcast_mut()memmap20.9.10quick-xml0.39.4anyhowis a direct dependency on every platform.memmap2arrives throughwinit/smithay-client-toolkit/sctk-adwaitaon the Linux window path.quick-xmlis build-time only -- thewayland-scannerproc-macro parsing theprotocol XML shipped inside the crate -- so neither DoS is reachable from guest
or user input; taken because it costs nothing.
wayland-scannermoves0.31.10 -> 0.31.11 as the parent permitting that bump.
Deliberately surgical: a bare
cargo updatemoves 97 crates, which is not achange to make the day before a release. Exactly four move here, with no crates
added or removed.
Not taken, and why
bincode1.3.3,paste1.0.15 andttf-parser0.25.1 carry unmaintainednotices with no patched version to move to.
bincodeis the save-stateencoding specifically, so a 1 -> 2 migration would invalidate every existing
state -- not a drive-by change.
wasmtime
27 advisories match
wasmtime27.0.0 in the database and none are reachable inthis configuration. The engine is Cranelift-only (excluding the four Winch
advisories, including the aarch64 sandbox escape), builds without the WASI,
component-model and threads features (excluding eight more), sets
wasm_simd(false)inmake_engine(excluding thef64x2.splatCranelift one),and uses the default allocator rather than the pooling one.
The advisory that would have mattered -- GHSA-jhxm-h53p-jm7w, aarch64 Cranelift
miscompile enabling sandbox escape -- is introduced in 32.0.0, so 27 predates
it. The RustSec mirror over-reports it with a range starting at zero; the
upstream GHSA has the accurate bounds.
Worth tracking separately (not here): 27.x is an unsupported line that receives
no backports, so the next advisory will not be fixed there either. Moving to the
36.x LTS is a real piece of work rather than a version bump, since the
=27.0.0pin exists for save-state determinism of plugin linear memory.
Verification
cargo-sources.jsonregenerated from the new lock (the Flatpak workflow failson a stale file); the diff touches only those four crates. Both nested workspace
lockfiles still resolve
--locked.Release build clean;
fmtclean;clippy --all-targets --all-features --locked -D warningsclean; unit suite 1839 passing; 22 golden renders passing; full--ignoredsuite passing (image_regression8/8,mb_ram3/3,vamiga_ts1/1). Re-querying OSV against the updated lock leaves only the three
unmaintained notices above.