fix(deps): bump rustls to 0.23.45 for RUSTSEC-2026-0285 - #73
Conversation
The osv-scanner job fails on main and on every PR branched from it:
| https://osv.dev/RUSTSEC-2026-0285 | 5.3 | crates.io | rustls | 0.23.37 | 0.23.45 | Cargo.lock |
##[error]Process completed with exit code 1
rustls 0.23.37 accepts TLS 1.3 handshake messages that cross an encryption
level boundary within a single record, which RFC 8446 section 5.1 requires
be rejected with an unexpected_message alert. Fixed upstream in 0.23.45.
Unlike the 11 advisories in osv-scanner.toml, this one has a released fix,
so it is bumped rather than suppressed.
cargo update -p rustls --precise 0.23.45
rustls-webpki moves with it because rustls 0.23.45 requires >= 0.103.14 and
the lock held 0.103.13. Those two entries are the entire diff; the package
count is unchanged at 796.
|
Important Review skippedReview was skipped due to path filters ⛔ Files ignored due to path filters (1)
CodeRabbit blocks several paths by default. You can override this behavior by explicitly including those paths in the path filters. For example, including ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Advanced Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
AI Auditor: Audit PassedThe security audit for this pull request has passed. Summary
No security vulnerabilities, logic bugs, or performance issues were identified. Warning Firewall blocked 1 domainThe following domain was blocked by the firewall during workflow execution:
network:
allowed:
- defaults
- "localhost"See Network Configuration for more information.
|
What
cargo update -p rustls --precise 0.23.45. Lockfile only — no manifest change.Why
scan / osv-scannerfails onmainand therefore on every PR branched from it:RUSTSEC-2026-0285 / GHSA-2mjx-qc3c-rqvc: rustls accepted TLS 1.3 handshake
messages sent at the wrong encryption level when they followed a key-changing
message in the same record (e.g. a plaintext
EncryptedExtensionspacked intothe
ServerHellorecord). RFC 8446 §5.1 requires the connection be terminatedwith
unexpected_message. The transcript stays authenticated, so this is not ahandshake-forgery path; severity is 5.3. Fixed in 0.23.45.
osv-scanner.tomldeliberately suppresses 11 advisories that have no reachablefix. This one does have a released fix, so it is bumped, not added to the
filter file.
Where rustls comes from
cargo tree -e normal -i rustlsprintsnothing to print— rustls is not inthe on-chain dependency graph. Every path is dev-only, through the vendored
solana-program-testdev-dependency of both program crates:So the exposure was host-side test tooling, not the deployed BPF programs. It
still has to be fixed because osv-scanner gates CI on it.
Blast radius
Two lock entries, 4 insertions / 4 deletions, package count unchanged at 796:
rustlsrustls-webpkirustls-webpkimoves because rustls 0.23.45 declaresrustls-webpki = "0.103.14"and the lock held 0.103.13. Nothing else in the graph shifted.
Verification
Ran the exact scanner and version the reusable
security-scan.ymljob runs(
osv-scanner v2.3.5,scan source --recursive ./):Before — exit 1:
After — exit 0:
Same 11 filtered advisories and 5 filtered packages as before; no new advisory
surfaced.
Build and tests, on the host toolchain (stable 1.95.0), not an SBF build:
cargo metadata --format-version 1 --locked→ exit 0cargo check --workspace --all-targets --locked→ exit 0 (compiles the wholedev tree, including the rustls consumers
solana-quic-client,solana-clientand
solana-program-test)cargo test --workspace --locked→ exit 0, all tests passA
cargo build-sbfwas not run; rustls is absent from the on-chain graph, sothe SBF artifact is unaffected by this lock change.
Note
PR #72 (a README fix) is currently red purely because of this —
scan / osv-scanneris its only failing check, everything else passes. It should gogreen once this merges and it picks up
main.