Skip to content

fix(security): upgrade rustls stack to 0.23 — clear RUSTSEC-2026-0098/-0099/-0104 - #432

Closed
MattJackson wants to merge 2 commits into
tiberius-rs:mainfrom
MattJackson:sync/s1
Closed

fix(security): upgrade rustls stack to 0.23 — clear RUSTSEC-2026-0098/-0099/-0104#432
MattJackson wants to merge 2 commits into
tiberius-rs:mainfrom
MattJackson:sync/s1

Conversation

@MattJackson

Copy link
Copy Markdown
Contributor

Resolves the three rustls certificate-verification advisories. Both commits are @jakewimmer's work (mirrors #419), authorship preserved.

  • tokio-rustls 0.24→0.26 (rustls 0.21→0.23), rustls-native-certs 0.6→0.8 → pulls in rustls-webpki 0.103.x.
  • rustls 0.23 API migration: ServerCertVerifier (verify_tls13_signature, supported_verify_schemes), CertificateCertificateDer, aws-lc-rs crypto provider; TLS-only items gated so --no-default-features builds stay clean.
  • dev-dependency azure_identity 0.5.0→0.20.0 (aad-auth example).

Non-breaking — no public API changes. Safe for a patch release, no major bump. Verified: builds clean (default / rustls / --features all), cargo audit confirms RUSTSEC-2026-0098/-0099/-0104 cleared.

Supersedes #419 — same fix, credit to @jakewimmer.

Out of scope (separate follow-up): azure_core (RUSTSEC-2026-0275, dev-dep) and rkyv (RUSTSEC-2026-0235, transitive under optional rust_decimal).

Reviewer note: please rebase-merge or merge-commit, not squash — this PR carries @jakewimmer's commits with authorship intact; squashing would collapse that credit.

Upgrade tokio-rustls to 0.26, rustls to 0.23, and rustls-native-certs to
0.8 to resolve RUSTSEC-2024-0421 and RUSTSEC-2025-0010.

Migrate the TLS stream to the rustls 0.23 API. Switch the crypto provider
to aws-lc-rs via builder_with_provider to avoid the dual-provider conflict
that tokio-rustls 0.26 introduces when ring is also in the dependency graph.

Pin to TLS 1.2 to prevent TLS 1.3 KeyUpdate messages from triggering
UnexpectedEof on the macOS CI runner.

(cherry picked from commit d46e4c0)
azure_core 0.20.0 switched from reqwest 0.11 to reqwest 0.12, which
pulls in rustls 0.23 and rustls-webpki 0.103.13. Bumping azure_identity
to 0.20.0 closes RUSTSEC-2026-0098, 0099, and 0104 in the dev build
without any changes to the production stack.

client_credentials_flow::perform now takes &str for the client secret.
Updated aad-auth.rs to pass raw env var strings and dropped the oauth2
ClientId/ClientSecret wrappers. Also bump reqwest 0.11 -> 0.12 and
oauth2 4.2.3 -> 5.0 in dev-dependencies to match.

Remove .cargo/audit.toml - the suppressions are no longer needed.

(cherry picked from commit 0e90db7)
@MattJackson

Copy link
Copy Markdown
Contributor Author

Superseded by #439. Re-opened as a native GitHub stacked PR (stack #445) per @aqrln's request in #440 — the fork origin of these PRs made a native stack impossible (GitHub can't add fork-head PRs to a stack), so the branches now live in tiberius-rs/tiberius directly. Same commits, same authorship. Please review #439 instead.

@MattJackson MattJackson closed this Sep 2, 2026
@MattJackson
MattJackson deleted the sync/s1 branch September 2, 2026 15:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants