fix(deps): clear all open Dependabot advisories - #436
Merged
Conversation
Supersedes #397, #380 and #409 with a single change. openssl 0.10.73 -> 0.10.81 (8 alerts: 5 high, 2 medium, 1 low) openssl-sys 0.9.109 -> 0.9.117 rustls-webpki 0.103.10 -> 0.103.15 (3 alerts: 1 high, 2 low) rand 0.8.5 -> 0.8.8 (1 alert: low) All 12 open alerts verified cleared against each advisory's patched version. openssl and rustls-webpki land newer than the dependabot PRs proposed (0.10.80 / 0.103.13). `rand` is the only one of the three that reaches shipped code: it is a runtime dependency of the published `ic-vetkeys` crate. #409 proposed 0.10.2 for it, but GHSA-cq8v-f236-94qc is patched in 0.8.6 -- a patch release. Taking 0.8.x avoids a breaking 0.8 -> 0.10 API migration across four crates, and a lockstep `rand_chacha` bump, for a low-severity advisory. The manifest floor moves to 0.8.6; the lock resolves 0.8.8. openssl and rustls-webpki arrive only via `reqwest`, a dev-dependency alongside `pocket-ic`, and the canisters build for wasm32-unknown-unknown where they cannot exist. They do not appear in the published crate's dependency list at all, so that exposure is CI-only. No release is required. Published `ic-vetkeys@0.9.0` declares `rand = "^0.8.5"`, which 0.8.8 already satisfies, so consumers resolve the fixed version on a fresh build without any action from us. The floor bump can ride the next release. Verified: cargo build (wasm32, all four canister crates), cargo test (14 passed incl. the pocket-ic integration tests), cargo test --doc, cargo clippy -- -Dwarnings, cargo fmt --check. All pass. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This was referenced Aug 26, 2026
eichhorl
approved these changes
Aug 27, 2026
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.
Clears all 12 open Dependabot advisories in one change. Supersedes #397, #380 and #409.
Changes
opensslopenssl-sysrustls-webpkirandEach alert was checked against its own patched version; all 12 verify as cleared.
opensslandrustls-webpkiland newer than the superseded PRs proposed (0.10.80 / 0.103.13).Three files, and the lockfile moves exactly four package versions — no transitive churn.
Why not
rand0.10.2, as #409 proposedrandis the only one of the three that reaches shipped code — it is a runtime dependency of the publishedic-vetkeyscrate (plusic-vetkeys-test-utils,ic-vetkeys-manager-canister,ic-vetkeys-canisters-tests).But the advisory (GHSA-cq8v-f236-94qc, low) is:
0.8.6 is a patch release. #409 proposed
0.10.2— two breaking majors past the fix — which would force arand0.8 → 0.10 API migration across four crates including the published crypto crate, plus a locksteprand_chacha0.3 → 0.10 move. That is a large, risky change to absorb for a low-severity advisory that a patch bump resolves. This PR moves the manifest floor to0.8.6and the lock resolves0.8.8.(The
rand 0.10.2already inCargo.lockis unrelated — it arrives viaquinn-proto, transitively under the dev-onlyreqwest, and is untouched here.)Severity in context
opensslandrustls-webpkiaccount for 11 of the 12 alerts, including all 6 highs — but their real exposure is CI-only. Both reach the tree solely viareqwest, which sits under[dev-dependencies]next topocket-ic, and the canisters compile towasm32-unknown-unknownwhere neither can exist. Neither appears in the published crate's dependency list:GitHub reports
scope=runtimefor all of them, but that is inferred fromCargo.lock, which carries no dev/runtime split for transitive packages. The manifests are the authority here.No release required
Published
ic-vetkeys@0.9.0declaresrand = "^0.8.5"— i.e.>=0.8.5, <0.9.0.0.8.8already satisfies that, so anyone building against 0.9.0 today resolves the fixed version automatically; nobody is pinned to the vulnerable 0.8.5 except via a stale local lockfile, whichcargo update -p randfixes without any action from us.Cargo.lockis not consumed by dependents of a library crate, and dev-dependencies never propagate — so theopenssl/rustls-webpkihalf has zero consumer impact by construction.The manifest floor bump to
0.8.6only takes effect when we next publish, and is belt-and-braces for the stale-lockfile case. It can ride the next release rather than triggering one. Nothing here affects@icp-sdk/vetkeys(npm) or the Motoko package.Verification
Ran the backend CI commands verbatim:
cargo build --release --target wasm32-unknown-unknownfor all four canister crates — passcargo test— 14 passed, 0 failed, including the pocket-ic integration tests (key_sharing_should_work,should_preserve_state_across_upgrade,should_get_accessible_shared_key_ids, …) that exercise the crypto paths usingrandcargo test --doc— pass (the 4ignoreddoc-tests carry pre-existingignoreannotations, unchanged here)cargo clippy -- -Dwarnings— passcargo fmt --check— passrand0.8.5 → 0.8.8 is a patch bump inside 0.8, so no API change was expected; the green build and integration tests confirm it rather than assume it.Superseded
openssl→ 0.10.80. Included here at 0.10.81.rustls-webpki→ 0.103.13. Included here at 0.103.15.rand→ 0.10.2. Replaced with the 0.8.x patch fix, per above.Also closed as obsolete while triaging: #337, #316, #315 (targeted
examples/, removed in #377) and #406 (vite7.3.5, already superseded by^7.3.6from #434).🤖 Generated with Claude Code