Skip to content

fix(deps): take rustls 0.23.46 for four new advisories - #447

Merged
emrecdr merged 1 commit into
mainfrom
fix/rustls-advisories-2026-10
Oct 16, 2026
Merged

emrecdr merged 1 commit into
mainfrom
fix/rustls-advisories-2026-10

Conversation

@emrecdr

@emrecdr emrecdr commented Oct 16, 2026

Copy link
Copy Markdown
Owner

main is red again for the same reason as #445: advisories published after its
last CI run. Four new rustls advisories land against 0.23.45, and since
cargo-deny is a required check they block main and every open PR —
including #446, which this unblocks.

main's last CI run (2026-10-14 03:04) predates them, so its green badge is
stale. Verified locally: main's lockfile fails cargo deny check advisories
with all four IDs.

None of the four reaches this build

Checked against source, not the advisory titles:

Advisory Precondition This build
RUSTSEC-2026-0346 — Debug leaks TLS secrets a custom ClientSessionStore that Debug-formats values none here or in ureq 3.3.0 — rustls' default cache is used
RUSTSEC-2026-0347 — data to outer server after ECH rejection a client configured for Encrypted Client Hello nothing configures ECH; no enabled ureq feature does
RUSTSEC-2026-0348 — Brotli forces a 1 GiB allocation rustls' non-default brotli feature not enabled
RUSTSEC-2026-0349 — downgrade from X25519MLKEM768 a client offering the post-quantum group ring provider, classical groups only; aws-lc-rs is not in the graph

Taken anyway: the advisories fail the required gate, and a lockfile audit would
flag the old release.

Change

Lockfile only — rustls 0.23.45 → 0.23.46, one package. A ### Security
CHANGELOG entry states the reach accurately rather than implying exposure.

Verification

  • cargo deny check advisories reports all four IDs on the old lockfile and
    advisories ok, bans ok, licenses ok, sources ok on the new one.
  • Not compiled locally (a from-scratch DuckDB build on a memory-constrained
    machine); CI runs the full suite.

Ledger

F394 — the ureq comment in crates/codelore-lib/Cargo.toml says TLS goes
through aws-lc-rs. It goes through ring. That matters beyond tidiness: under
aws-lc-rs, -0349 would be reachable, so a security note written from the
comment would be wrong in the alarming direction. Recorded, not fixed inline.

https://claude.ai/code/session_01LRZ8yoFPCFgfZ8raBUeDeP

RUSTSEC-2026-0346, -0347, -0348 and -0349 were published against rustls
0.23.45 after `main`'s last CI run, so its green badge was stale: the lockfile
fails `cargo deny check advisories` today, and every open pull request fails
the same required check for the same reason.

None of the four reaches this build, and each was checked against source
rather than the advisory title:

- -0346 needs a custom ClientSessionStore that Debug-formats session values.
  Neither this project nor ureq 3.3.0 installs one.
- -0347 needs a client configured for Encrypted Client Hello. Nothing here
  configures ECH and no enabled ureq feature turns it on.
- -0348 needs rustls' non-default `brotli` feature, which is not enabled.
- -0349 downgrades a client offering X25519MLKEM768. This build links the
  `ring` provider, which offers classical groups only; aws-lc-rs is not in
  the dependency graph.

Taken anyway, because the advisories fail the required `cargo-deny` gate and
a lockfile audit would flag the old release. Lockfile only, one package.

Verified: `cargo deny check advisories` reports all four IDs on the old
lockfile and `advisories ok, bans ok, licenses ok, sources ok` on the new one.

Records F394: the ureq comment in codelore-lib's Cargo.toml names aws-lc-rs
as the TLS backend, which would make -0349 look reachable when it is not.

Claude-Session: https://claude.ai/code/session_01LRZ8yoFPCFgfZ8raBUeDeP
@emrecdr
emrecdr merged commit 9d72ab8 into main Oct 16, 2026
14 checks passed
@emrecdr
emrecdr deleted the fix/rustls-advisories-2026-10 branch October 16, 2026 19:18
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.

1 participant