Skip to content

fix: drop the legacy TLS stack pulling a vulnerable rustls-webpki - #7

Merged
calebevans merged 1 commit into
mainfrom
fix/rustls-webpki-advisory
Aug 12, 2026
Merged

fix: drop the legacy TLS stack pulling a vulnerable rustls-webpki#7
calebevans merged 1 commit into
mainfrom
fix/rustls-webpki-advisory

Conversation

@calebevans

Copy link
Copy Markdown
Owner

Dependabot's security update for rustls-webpki has been failing on every run with security_update_not_possible — the advisory is fixed in 0.103.13, the tree could only resolve 0.101.7, and it reported no conflicting dependency it could act on.

Where it came from

aws-sdk-bedrockruntime's default features include rustls:

aws-sdk-bedrockruntime/rustls
  -> aws-smithy-runtime/tls-rustls
  -> aws-smithy-http-client/legacy-rustls-ring
  -> rustls 0.21 + hyper-rustls 0.24
  -> rustls-webpki 0.101.7        (unpatched; the fix only exists in 0.103.13,
                                   which rustls 0.21 cannot take)

So both TLS stacks were being compiled in — the legacy one on the vulnerable webpki, and the modern one alongside it. That's also why Dependabot couldn't see a conflict to report: nothing was blocking the upgrade, a second obsolete path was simply being pulled in beside it.

The fix

That feature is redundant. default-https-client, also on by default, already supplies TLS via rustls-aws-lc on rustls 0.23. Turning off default features and requesting only what is used collapses it to one stack:

before after
rustls-webpki 0.101.7 + 0.103.13 0.103.13
rustls 0.21.12 + 0.23.41 0.23.41

aws-lc-rs was already in the lockfile because default-https-client was already enabled, so this adds no new build-time requirement (no new cmake/nasm dependency).

487 tests pass unchanged.

🤖 Generated with Claude Code

https://claude.ai/code/session_01JNhUehmChiQKJUjv3QPnkH

Dependabot's security update for rustls-webpki has been failing with
`security_update_not_possible`: the advisory is fixed in 0.103.13, but
the tree could only resolve 0.101.7, and Dependabot reported no
conflicting dependency it could act on.

The vulnerable copy came in through aws-sdk-bedrockruntime's default
features, which include `rustls`. That maps to
aws-smithy-runtime/tls-rustls, which maps to
aws-smithy-http-client/legacy-rustls-ring, which pins rustls 0.21 and
hyper-rustls 0.24 -- and rustls 0.21 cannot take a webpki new enough to
carry the fix. So both stacks were being compiled in: the legacy one on
0.101.7 and the modern one on 0.103.13.

That feature is redundant. `default-https-client`, also on by default,
already supplies TLS through rustls-aws-lc on rustls 0.23. Turning off
default features and asking for only what is used leaves one TLS stack.

    rustls-webpki  0.101.7 + 0.103.13  ->  0.103.13
    rustls         0.21.12 + 0.23.41   ->  0.23.41

aws-lc-rs was already being built, since `default-https-client` was
already enabled, so this adds no new build-time requirement.

487 tests pass unchanged.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JNhUehmChiQKJUjv3QPnkH
@calebevans
calebevans merged commit fe58faa into main Aug 12, 2026
6 checks passed
@calebevans
calebevans deleted the fix/rustls-webpki-advisory branch August 12, 2026 06:06
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