Repository navigation
chore(deps): bump the rust-dependencies group with 6 updates - #2720
Merged
Merged
Conversation
Carries the group bump from #2706 plus the supply-chain delta audits it needs. That PR was green on Test, Lint, Examples and every WASM/Windows job; only `Audit` failed, with `cargo vet --locked` reporting ten crates unvetted. Refreshing the imported audits covers serde_spanned and the four toml crates, leaving five to review by hand. Reviewed each published package diff. None adds a dependency, a build script, or any host filesystem, network or process access, and every one of the five is a narrowing: * russh 0.63.3 -> 0.64.1 enforces that a publickey signature uses the algorithm the request announced (RFC 4252 s7, RFC 8332 s3). Before, a client could announce rsa-sha2-512 and sign with ssh-rsa (SHA-1) and the server accepted it. It also *removes* a dependency: the legacy-ed25519-pkcs8-parser feature and its yasna ASN.1 crate are gone. We use russh as a client with default features, so that feature was never enabled and the server-side bug never reachable; both changes only shrink the surface. The rest is let-chain rewrites in known_hosts/kex with identical semantics and saturating arithmetic for the cipher byte counter. No new unsafe anywhere. * napi 3.14.0 -> 3.14.2 bounds serde_json::Value conversion at 128 levels of nesting, which matters most here because the binding converts untrusted input, and fixes an aliasing violation in NativeBorrowScope by owning its storage through NonNull. * zeroize 1.9.0 -> 1.9.1 replaces Zeroizing's derived Debug with an opaque impl, so a wrapped secret no longer renders through `{:?}`; also stops double-zeroizing Vec elements and fixes an uninitialized read in the optimization_barrier fallback. * toml_parser 1.1.3 -> 1.1.5 removes its optional `unsafe` feature's get_unchecked paths outright. * syn 3.0.6 -> 3.0.7 is a one-line parser fix; signal-hook 0.4.4 -> 0.4.5 hoists a raw fd out of a borrow before an unsafe libc::send.
Contributor
Author
|
russh is the semver-breaking part of this group, so I ran its suite locally against 0.64.1 before pushing, with the Also confirmed the breaking changes miss this tree. CI runs the same ssh suite, so this is corroboration rather than a substitute. Generated by Claude Code |
Deploying with
|
| Status | Name | Latest Commit | Preview URL | Updated (UTC) |
|---|---|---|---|---|
| ✅ Deployment successful! View logs |
bashkit | 744650a | Commit Preview URL Branch Preview URL |
Oct 13 2026, 11:11 AM |
chaliy
pushed a commit
that referenced
this pull request
Oct 13, 2026
… in the fuzz-dependencies group (#2718) Brings the fuzz lockfile to the zeroize 1.9.1 the root workspace now resolves after #2720, so the two stay in step. 1.9.1 makes Zeroizing's Debug opaque, stops double-zeroizing Vec elements, and fixes an uninitialized read in the optimization_barrier fallback; it is already vetted from #2720's delta audit. Full CI green (28 checks), including Fuzz Compile Check and Audit.
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
Takes the rust-dependencies group bump from #2706 and adds the supply-chain
delta audits it needs. Ten crates move; the notable one is russh
0.63.3 → 0.64.1, which both fixes a server-side authentication bug and
removes a dependency.
Supersedes #2706, which cannot merge as-is.
Why
#2706 was green on
Test,Lint,Examplesand every WASM/Windows job.Only
Auditfailed:Refreshing the imported audits (mozilla, bytecodealliance) covers
serde_spannedand the fourtomlcrates, soimports.lockmoves and fivecrates needed review by hand.
Before / After
What the review found
None of the five adds a dependency, a build script, or any host filesystem,
network or process access. Every one is a narrowing — this upgrade set
reduces risk rather than adding it.
russh 0.63.3 → 0.64.1 — the one worth reading closely, since it is the SSH
client behind the
ssh/scp/sftpbuiltins.the request announced (RFC 4252 §7, RFC 8332 §3). Previously a client could
announce
rsa-sha2-512and sign withssh-rsa(SHA-1) and the serveraccepted it. Upstream added the comparison plus a regression test asserting
both the rejection and that a matching signature still passes.
legacy-ed25519-pkcs8-parserfeatureand its
yasnaASN.1 crate are gone, so the PKCS8 path no longer falls backto a second parser on error.
feature was never enabled and the server-side bug was never reachable from
this tree. Both changes only shrink the surface here.
keys/known_hosts.rsandkex/dh/mod.rswith identical semantics, saturating arithmetic for thecipher byte counter, and new integration tests. No new
unsafeanywherein
src.napi 3.14.0 → 3.14.2 — bounds
serde_json::Valueconversion at 128 levelsof nesting, which matters most here because the binding converts untrusted
input; fixes an aliasing violation in
NativeBorrowScopeby owning its storagethrough
NonNull; registers the wasm cleanup via the env cleanup hook.zeroize 1.9.0 → 1.9.1 — replaces
Zeroizing's derivedDebugwith anopaque impl, so a wrapped secret no longer renders through
{:?}(the sameconcern as TM-INF-022); stops double-zeroizing
Vecelements; fixes apotential uninitialized read in the
optimization_barrierfallback.toml_parser 1.1.3 → 1.1.5 — removes its optional
unsafefeature'sget_uncheckedpaths outright.syn 3.0.6 → 3.0.7 — one-line parser fix: a label is no longer matched when
the next token is
::. signal-hook 0.4.4 → 0.4.5 — hoists the raw fd outof a borrow before the unsafe
libc::sendwake.Recorded as five delta audits, matching the shape of the existing entries for
these crates.
Risk
0.x crate, and it is the SSH client in the
sshfeature.Test,LintandExampleswere all green there, withAuditthe onlyfailure. CI here runs the ssh suite again
(
cargo test --features ssh -p bashkit --test ssh_builtin_tests).russh. The signature-algorithm change is the part a regression would most
likely come from, though it tightens rather than loosens acceptance.
imports.lockmoves because the imported audits were refreshed; that is howthe five toml-family crates become vetted without hand-written entries.
Checklist
supply-chain metadata, with the existing ssh, toml and binding suites
covering behavior. The gate that was failing is shown passing above.
breaking changes are in its server surface and the removed legacy PKCS8
feature, neither of which this tree uses.
Generated by Claude Code