eMudhra CA response: bump rustls-webpki to 0.103.16 (RUSTSEC-2026-0382)
Summary
Follow-up to #31. Fixes RUSTSEC-2026-0382 (CVE-2026-111943): rustls-webpki < 0.103.16 accepts certificate paths that pass through the 8 distrusted emSign (eMudhra) intermediate keys, whose private keys are now public. 0.103.16 rejects paths containing those keys.
#31 missed it because it only bumped the trust-anchor crate (webpki-root-certs 1.0.10). Removing the roots does not cover the intermediates: the CA-distrust key blocklist lives in rustls-webpki's path builder, so that crate needs its own bump.
Changes
Cargo.lock:rustls-webpki0.103.13 -> 0.103.16 (version + checksum only, 2 lines). No other package moves.
name = "rustls-webpki"
-version = "0.103.13"
+version = "0.103.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "61c429a8649f110dddef65e2a5ad240f747e85f7758a6bccc7e5777bd33f756e"
+checksum = "4443b1b6d39d7c663139942cc4558262562d2c84123bb6282ef177009ca8b281"
Note: a plain cargo update -p rustls-webpki --precise 0.103.16 also re-unified several windows-sys 0.52.0 dependents onto 0.60.2. To keep the diff to the one crate, the entry was edited to the exact crates.io version/checksum and checked with cargo metadata --locked (lockfile valid, no re-resolution needed).
Testing
-
cargo build --locked -
cargo test --workspace(12 passed) -
cargo deny check advisories: RUSTSEC-2026-0382 reported onmain, gone on this branch - prek hooks: fmt, clippy, biome, import-lint, sync-agent-config passed.
ai-writing-checkskipped: it fails identically onmain(em dashes incrates/engine/src/gateway/*.rs,crates/cli/src/gateway_cmd.rs,CLAUDE.md; untouched here) -
make ci: fails only on pre-existingaudit(bun auditJS advisories, thencargo deny) andcheck_ai_writing, both unrelated to this lockfile change
Known pre-existing CI failures on main
- Cargo Deny: RUSTSEC-2024-0449 (
unsafe-libyamlviaserde_yaml, unmaintained, no fix). Alsorustls0.23.36 is flagged by RUSTSEC-2026-0285 / 0346 / 0348 / 0349 (patched in 0.23.46). Out of scope here; worth a separate bump. - Clippy: if CI's Rust 1.99.1 reports
double_must_use/needless_match, those are new lints already failing onmain.
Related Issues
eMudhra CA incident follow-up.
Generated by Claude Code
Summary by cubic
Bumps rustls-webpki to 0.103.16 so TLS verification rejects certificate paths through the eight distrusted emSign (eMudhra) intermediate keys, whose private keys are now public (RUSTSEC-2026-0382). The previous bump of webpki-root-certs removed only the roots — the intermediate blocklist lives in rustls-webpki's path builder, so it needed its own bump.
Dependencies
- Lockfile-only change: version and checksum of
rustls-webpki(2 lines), pinned exactly so no other packages move —cargo updatewould also have moved severalwindows-sysdependents.