Skip to content

fix(infra): bump lettre to 0.11.22 (RUSTSEC-2026-0141)#571

Merged
Detair merged 2 commits into
mainfrom
fix/lettre-rustsec-2026-0141
Jun 9, 2026
Merged

fix(infra): bump lettre to 0.11.22 (RUSTSEC-2026-0141)#571
Detair merged 2 commits into
mainfrom
fix/lettre-rustsec-2026-0141

Conversation

@Detair

@Detair Detair commented Jun 9, 2026

Copy link
Copy Markdown
Owner

Summary

Fixes the Security Audit workflow, which has failed on every scheduled run since 2026-05-17 (4 consecutive failures).

  • Root cause: RUSTSEC-2026-0141 (critical, CVSS 9.1) — lettre ≤0.11.21's boring-tls integration silently disables TLS hostname verification.
  • Exposure: None for Kaiku — we build lettre with tokio1-native-tls (Cargo.toml:116), so the vulnerable boring-tls code path was never compiled. The advisory still fails cargo audit.
  • Fix: cargo update -p lettre → 0.11.22. Lockfile-only change; also drops now-unused transitive crates (chumsky, psm, stacker).

Completes a Goal 1 item from docs/developer-guide/project/goals.md (restore green CI).

Verification

  • cargo audit with CI's exact ignore flags — passes (advisory cleared, only allowed warnings remain)
  • cargo audit --deny yanked — passes
  • cargo deny check licenses — passes
  • SQLX_OFFLINE=true cargo clippy -p vc-server -- -D warnings — clean
  • cargo test -p vc-server — 943 passed, 0 failed (433 ignored env-specific)
  • Security Audit workflow also triggers on push to main for Cargo.lock changes, so merging this will re-run it automatically.

🤖 Generated with Claude Code

Detair and others added 2 commits June 10, 2026 00:05
The weekly Security Audit workflow has failed since 2026-05-17 on
RUSTSEC-2026-0141 (critical, 9.1): lettre's boring-tls backend silently
disabled TLS hostname verification. Kaiku builds lettre with native-tls,
so the vulnerable code path was never compiled, but the advisory fails
cargo audit regardless.

Lockfile-only update; also drops now-unused transitive crates
(chumsky, psm, stacker). Verified locally with CI's exact cargo audit
invocations, cargo deny check licenses, clippy, and the full server
test suite (943 tests passing).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The windows-latest runner image now ships CMake 4.x, which removed
compatibility with cmake_minimum_required < 3.5 — audiopus_sys's bundled
Opus fails to configure. The CMAKE_POLICY_VERSION_MINIMUM=3.5 workaround
already existed for macOS; apply it on Windows too (shell: bash so the
$GITHUB_ENV redirect works on the pwsh-default runner).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@Detair Detair merged commit 82ecc42 into main Jun 9, 2026
18 checks passed
@Detair Detair deleted the fix/lettre-rustsec-2026-0141 branch June 9, 2026 23:18
Detair added a commit that referenced this pull request Jun 10, 2026
…#572)

The OSV Scanner job was the last red job in the Security Audit workflow
after #571. It flagged:

- openssl 0.10.76 — eight CVEs from the 2026 OpenSSL batch → 0.10.80
  (transitive via native-tls: reqwest/openidconnect/sentry/lettre)
- actix-http 3.12.0 — GHSA-xhj4-vrgc-hr34 → 3.12.1. Lockfile-only:
  pulled in by sentry-actix's optional dep resolution, never compiled
  (cargo tree -i finds no path).
- mermaid 11.14.0 — four XSS-class CVEs → 11.15.0
- audiopus_sys (RUSTSEC-2026-0150) and proc-macro-error2
  (RUSTSEC-2026-0173) — unmaintained-only advisories with no fixed
  release → justified ignore entries in .osv-scanner.toml, matching
  cargo-audit/cargo-deny tolerance.

Verified: clippy clean, cargo deny licenses ok, client vitest 581 passed.

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
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