chore(deps): pin aws-lc-rs <1.18 to retain AWS-LC-FIPS 3.x backend - #1390
Draft
lucaspimentel wants to merge 1 commit into
Draft
lucaspimentel wants to merge 1 commit into
lucaspimentel wants to merge 1 commit into
Conversation
The rustls <0.23.45 cap did not reliably constrain the transitive crypto backend: rustls 0.23.37 still permits aws-lc-rs 1.18, which switches to AWS-LC-FIPS 4.x, pending FIPS 140-3 certification. Pin the backend directly (>=1, <1.18), activated by the fips feature, mirroring DataDog/saluki#2348 and DataDog/serverless-components#173. Resolves to rustls 0.23.43, aws-lc-rs 1.17.4, aws-lc-fips-sys 0.13.17. The RUSTSEC-2026-0285 waiver is kept: the fix ships in rustls 0.23.45, which stays out of range.
aws-lc-rs <1.18 to retain AWS-LC-FIPS 3.x backend
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Overview
Pins the FIPS crypto backend directly: adds
aws-lc-rs = { version = ">=1, <1.18" }as an optional dependency activated by thefipsfeature, and removes therustls <0.23.45cap introduced by #1389.Capping
rustlsdid not reliably constrain the transitive crypto backend:rustls0.23.37 still permitsaws-lc-rs1.18, which switches to AWS-LC-FIPS 4.x. AWS-LC-FIPS 4.x has not completed FIPS 140-3 certification; only the 3.x module is NIST CMVP validated. The backend itself is therefore pinned as a direct dependency even though the crate does not callaws-lc-rsAPIs directly, following the approach in DataDog/saluki#2348 and DataDog/serverless-components#173. The pin participates in resolution for both the default and FIPS builds, so a futurecargo updatecan no longer silently re-selectaws-lc-rs1.18.RUSTSEC-2026-0285 is only fixed in
rustls>= 0.23.45, which stays out of range, so the existing waiver inbottlecap/.cargo/audit.toml(and the matchingignoreinrs_ci.yml) is intentionally preserved. This change does not fix that advisory.Removal criteria: lift the
aws-lc-rs <1.18bound and remove theRUSTSEC-2026-0285waiver (frombottlecap/.cargo/audit.tomlandrs_ci.yml, then re-bumprustls) once AWS-LC-FIPS 4.x certification is verified. Once DataDog/serverless-components#173 merges, this local pin can instead be dropped by bumping theserverless-componentsgit rev (currently3ab01258, kept aligned across thedatadog-fips,dogstatsd,datadog-agent-config, anddatadog-agent-trace-samplerdependencies).Testing
cargo metadata --locked(plain and--all-features) succeeds inbottlecap/without modifying the lockfile.cargo tree --locked -i aws-lc-rsresolves to a singleaws-lc-rs 1.17.4for both the default and FIPS builds; the FIPS build activates itsfipsfeature, resolving toaws-lc-fips-sys 0.13.17../scripts/verify_tls_root_features.shpasses: default build keeps webpki roots, FIPS build keeps native roots.cargo clippy --workspace --all-targetspasses for both--features defaultand--no-default-features --features fipswithRUSTFLAGS=-D warnings.cargo nextest run --workspace --locked: 690 passed, 0 failed.cargo fmt --all -- --checkpasses.dd-rust-license-tool checkpasses with no changes toLICENSE-3rdparty.csv.cargo auditexits 0: RUSTSEC-2026-0285 is ignored, only the 9 pre-existing allowed warnings remain.