Skip to content

Update rustls to fix TLS handshake validation - #1003

Merged
sehkone merged 1 commit into
mainfrom
sehkone/issue-1002
Sep 19, 2026
Merged

sehkone merged 1 commit into
mainfrom
sehkone/issue-1002

Conversation

@sehkone

@sehkone sehkone commented Sep 18, 2026

Copy link
Copy Markdown
Contributor

Summary

The lockfile's rustls 0.23.44 accepts TLS 1.3 handshake messages across encryption-level boundaries within a record and fails the security audit under RUSTSEC-2026-0285. Update only rustls to the patched 0.23.45 release and record the security fix in the changelog. The last release used affected rustls 0.23.43.

The existing Cargo.toml range permits this patch, so only the rustls version/checksum in Cargo.lock and the changelog change. Certificate verification policy, audit checks, and other resolved dependencies remain unchanged.

Closes #1002

Priority

Merge this security update before the independent Dependabot grouping PR #1001. After a maintainer merges this PR, bring the updated main into #1001 and rerun its CI. The grouping change is not included here.

Validation

  • cargo audit: passed; RUSTSEC-2026-0285 no longer reported. The existing non-fatal unmaintained rustls-pemfile warning remains.
  • scripts/preflight/run-all.sh: quality checks passed, including Rust formatting, Clippy, rustdoc, Python formatting/lint, Biome, Markdown lint, docs, audit, and compose/E2E script validation. The run then stopped at deploy smoke because OrbStack was already listening on port 8200.
  • cargo test: passed, 2,807 tests passed, 0 failed, 39 ignored. Local platform-specific/ignored coverage is not a substitute for Linux CI fixtures.
  • Retried deploy smoke using free ports and an isolated Compose project; Docker refused network creation because its predefined address pools were fully subnetted. Existing networks were left intact.
  • RUST_LOG=info scripts/preflight/ci/e2e-matrix.sh: local-no-hosts passed, including issuance, credential rotation/recovery, CA key rotation, and audit assertions. local-hosts could not run because sudo -n requires a password on this host; the remaining matrix arms were not reached. CI must gate those arms, as permitted by AGENTS.md. The initial attempt inherited RUST_LOG=warn, which hid the harness's info-level readiness message; the explicit info-level rerun resolved that local setup issue without code changes.
  • git diff --check: passed; reviewed the two-file diff.

CI completed successfully: Quality Check (including cargo audit), Markdown/shared-instruction drift, Unit & CLI Smoke (including monitoring and deploy smoke), and all 14 Docker E2E matrix arms passed. The docs-only companion job was correctly skipped. CodeQL also passed for Actions, Python, and Rust. No CI check was weakened or bypassed.

Reject TLS 1.3 handshake messages that cross encryption-level boundaries
within a record by resolving the patched rustls release. This addresses
RUSTSEC-2026-0285 and restores the security audit gate without suppressing
checks or changing certificate verification policy.

Closes #1002
@sehkone
sehkone merged commit 215eb13 into main Sep 19, 2026
23 checks passed
@sehkone
sehkone deleted the sehkone/issue-1002 branch September 19, 2026 10:44
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.

Update rustls to fix TLS handshake validation

1 participant