Skip to content

security: bump aws-lc-rs, time, and serde_with to fix RustSec advisories - #4188

Draft
Gustavo-Jodar wants to merge 3 commits into
masterfrom
gustavo.jodar/bump-aws-lc-rs-time-serde_with
Draft

security: bump aws-lc-rs, time, and serde_with to fix RustSec advisories#4188
Gustavo-Jodar wants to merge 3 commits into
masterfrom
gustavo.jodar/bump-aws-lc-rs-time-serde_with

Conversation

@Gustavo-Jodar

Copy link
Copy Markdown
Collaborator

Fixes several security advisories affecting Rust dependencies:

The time/serde_with fixed versions require rustc >= 1.88 (their declared MSRV), so this also bumps the toolchain pin from 1.87.0 to 1.88.0 across Cargo.toml, rust-toolchain.toml, profiling/rust-toolchain.toml, and the Dockerfiles that install the Rust toolchain for CI/dev images (bookworm, centos-7 base image with updated SHA256 checksums, Windows base tools, appsec integration test image).

CVE-2026-25541 (bytes) required no change: the lockfile was already at the fixed version 1.11.1.

Description

Reviewer checklist

  • Test coverage seems ok.
  • Appropriate labels assigned.

@datadog-prod-us1-4

datadog-prod-us1-4 Bot commented Sep 14, 2026

Copy link
Copy Markdown

Pipelines  Tests

Unblock PR with BitsAI

⚠️ Warnings

Your PR has failed checks. Please review the issues below and take necessary action before merging.

🚦 140 Pipeline jobs failed

DataDog/apm-reliability/dd-trace-php | test_integrations_frankenphp: [8.2] — ❌ 1 test failed

View more details · View in GitLab

❌ DDTrace\Tests\Integrations\Frankenphp\CommonScenariosTest::testScenario from frankenphp-test.DDTrace\Tests\Integrations\Frankenphp\CommonScenariosTest
100    92  100    92    0     0      8      0  0:00:11  0:00:11 --:--:--    23
+ tar xf /tmp/frankenphp.tar.gz -C /usr/local/src/frankenphp --strip-components=1
tar: This does not look like a tar archive

gzip: stdin: not in gzip format
tar: Child returned status 1
tar: Error is not recoverable: exiting now

tests/Sapi/Frankenphp/FrankenphpServer.php:98
tests/Sapi/Frankenphp/FrankenphpServer.php:123
...
DataDog/apm-reliability/dd-trace-php | check libxml2 version — 🔧 Needs a code fix, caused by this PR

View more details · View in GitLab

DataDog/apm-reliability/dd-trace-php | clippy NTS: [7.1] — 🔧 Needs a code fix, caused by this PR

View more details · View in GitLab

View all 140 failed jobs.

ℹ️ Info

No other issues found (see more)

❄️ No new flaky tests detected

🎯 Code Coverage (details)
Patch Coverage: 100.00%
Overall Coverage: 54.64% (-0.44%)

Useful? React with 👍 / 👎

This comment will be updated automatically if new data arrives.
🔗 Commit SHA: bd34e4d | Docs | View more details | Give us feedback!

Fixes several security advisories affecting Rust dependencies:

- GHSA-65p9-r9h6-22vj, GHSA-9f94-5g5w-gf6r, GHSA-394x-vwmw-crm3,
  GHSA-hfpc-8r3f-gw53, GHSA-vw5v-4f2q-w9xf: aws-lc-fips-sys/aws-lc-sys,
  pulled in transitively via aws-lc-rs (rustls -> libdd-common). Fixed by
  bumping aws-lc-rs 1.15.4 -> 1.18.1, which pulls aws-lc-sys 0.37.0 -> 0.45.0
  and aws-lc-fips-sys 0.13.6 -> 0.14.2.

- CVE-2026-25727 (RUSTSEC-2026-0009/GHSA-r6v5-fh4h-64xc): time crate
  RFC2822 parser stack exhaustion. Fixed by bumping time 0.3.37 -> 0.3.47.

- GHSA-7gcf-g7xr-8hxj: serde_with KeyValueMap adapter panic DoS. Fixed by
  bumping serde_with 3.12.0 -> 3.21.0.

The time/serde_with fixed versions require rustc >= 1.88 (their declared
MSRV), so this also bumps the toolchain pin from 1.87.0 to 1.88.0 across
Cargo.toml, rust-toolchain.toml, profiling/rust-toolchain.toml, and the
Dockerfiles that install the Rust toolchain for CI/dev images (bookworm,
centos-7 base image with updated SHA256 checksums, Windows base tools,
appsec integration test image).

CVE-2026-25541 (bytes) required no change: the lockfile was already at
the fixed version 1.11.1.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@Gustavo-Jodar
Gustavo-Jodar force-pushed the gustavo.jodar/bump-aws-lc-rs-time-serde_with branch from 438b13c to 4bef5d4 Compare September 14, 2026 08:25
@pr-commenter

pr-commenter Bot commented Sep 14, 2026

Copy link
Copy Markdown

Benchmarks [ profiler ]

Benchmark execution time: 2026-09-14 14:43:23

Comparing candidate commit bd34e4d in PR branch gustavo.jodar/bump-aws-lc-rs-time-serde_with with baseline commit a0bf05c in branch master.

Found 0 performance improvements and 3 performance regressions! Performance is the same for 25 metrics, 8 unstable metrics.

Explanation

This is an A/B test comparing a candidate commit's performance against that of a baseline commit. Performance changes are noted in the tables below as:

  • 🟩 = significantly better candidate vs. baseline
  • 🟥 = significantly worse candidate vs. baseline

We compute a confidence interval (CI) over the relative difference of means between metrics from the candidate and baseline commits, considering the baseline as the reference.

If the CI is entirely outside the configured SIGNIFICANT_IMPACT_THRESHOLD (or the deprecated UNCONFIDENCE_THRESHOLD), the change is considered significant.

Feel free to reach out to #apm-benchmarking-platform on Slack if you have any questions.

More details about the CI and significant changes

You can imagine this CI as a range of values that is likely to contain the true difference of means between the candidate and baseline commits.

CIs of the difference of means are often centered around 0%, because often changes are not that big:

---------------------------------(------|---^--------)-------------------------------->
                              -0.6%    0%  0.3%     +1.2%
                                 |          |        |
         lower bound of the CI --'          |        |
sample mean (center of the CI) -------------'        |
         upper bound of the CI ----------------------'

As described above, a change is considered significant if the CI is entirely outside the configured SIGNIFICANT_IMPACT_THRESHOLD (or the deprecated UNCONFIDENCE_THRESHOLD).

For instance, for an execution time metric, this confidence interval indicates a significantly worse performance:

----------------------------------------|---------|---(---------^---------)---------->
                                       0%        1%  1.3%      2.2%      3.1%
                                                  |   |         |         |
       significant impact threshold --------------'   |         |         |
                      lower bound of CI --------------'         |         |
       sample mean (center of the CI) --------------------------'         |
                      upper bound of CI ----------------------------------'

scenario:php-profiler-timeline-memory-control

  • 🟥 cpu_user_time [+30.787ms; +36.632ms] or [+4.585%; +5.455%]
  • 🟥 execution_time [+32.855ms; +37.209ms] or [+4.563%; +5.168%]

scenario:walk_stack/1

  • 🟥 wall_time [+335.419ns; +341.370ns] or [+2.738%; +2.787%]

Gustavo-Jodar and others added 2 commits September 14, 2026 15:25
Alpine 3.22's apk-provided rust package is 1.87.0, which is below the
new rust-version = "1.88.0" MSRV set in Cargo.toml, so cargo builds in
this image fail with "requires rustc 1.88.0". Alpine 3.23 ships
rust-1.91.1-r2. Bump the clang/llvm packages from 20 to 21 to match,
since they must track rustc's LLVM version for cross-language LTO.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
The Bookworm CI images were rebuilt as bookworm-11 (see
dockerfiles/ci/bookworm/.env's BOOKWORM_NEXT_VERSION) to pick up the
Rust 1.88.0 MSRV, but references to the old bookworm-10 tag across the
generator scripts, docker-compose.yml, and the GitHub Actions asan
workflow were never updated. Bump BOOKWORM_CURRENT_VERSION to 11 and
BOOKWORM_NEXT_VERSION to 12 now that bookworm-11 is live.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@bwoebi

bwoebi commented Sep 14, 2026

Copy link
Copy Markdown
Collaborator

Note that aws-lc-sys is only in the lockfile because of cargo pulling in all transitive dependencies of all features. We do in fact, not actually compile it in.

This is rust-lang/cargo#10801.

@pr-commenter

pr-commenter Bot commented Sep 14, 2026

Copy link
Copy Markdown

Benchmarks [ tracer ]

Benchmark execution time: 2026-09-14 15:34:59

Comparing candidate commit bd34e4d in PR branch gustavo.jodar/bump-aws-lc-rs-time-serde_with with baseline commit a0bf05c in branch master.

Found 4 performance improvements and 0 performance regressions! Performance is the same for 190 metrics, 0 unstable metrics.

Explanation

This is an A/B test comparing a candidate commit's performance against that of a baseline commit. Performance changes are noted in the tables below as:

  • 🟩 = significantly better candidate vs. baseline
  • 🟥 = significantly worse candidate vs. baseline

We compute a confidence interval (CI) over the relative difference of means between metrics from the candidate and baseline commits, considering the baseline as the reference.

If the CI is entirely outside the configured SIGNIFICANT_IMPACT_THRESHOLD (or the deprecated UNCONFIDENCE_THRESHOLD), the change is considered significant.

Feel free to reach out to #apm-benchmarking-platform on Slack if you have any questions.

More details about the CI and significant changes

You can imagine this CI as a range of values that is likely to contain the true difference of means between the candidate and baseline commits.

CIs of the difference of means are often centered around 0%, because often changes are not that big:

---------------------------------(------|---^--------)-------------------------------->
                              -0.6%    0%  0.3%     +1.2%
                                 |          |        |
         lower bound of the CI --'          |        |
sample mean (center of the CI) -------------'        |
         upper bound of the CI ----------------------'

As described above, a change is considered significant if the CI is entirely outside the configured SIGNIFICANT_IMPACT_THRESHOLD (or the deprecated UNCONFIDENCE_THRESHOLD).

For instance, for an execution time metric, this confidence interval indicates a significantly worse performance:

----------------------------------------|---------|---(---------^---------)---------->
                                       0%        1%  1.3%      2.2%      3.1%
                                                  |   |         |         |
       significant impact threshold --------------'   |         |         |
                      lower bound of CI --------------'         |         |
       sample mean (center of the CI) --------------------------'         |
                      upper bound of CI ----------------------------------'

scenario:HookBench/benchHookOverheadTraceMethod-opcache

  • 🟩 execution_time [-7.912µs; -3.782µs] or [-4.483%; -2.143%]

scenario:MessagePackSerializationBench/benchMessagePackSerialization-opcache

  • 🟩 execution_time [-4.664µs; -2.376µs] or [-4.200%; -2.140%]

scenario:TraceAnnotationsBench/benchTraceAnnotationOverhead-opcache

  • 🟩 execution_time [-10.764µs; -6.920µs] or [-5.959%; -3.831%]

scenario:WordPressBench/benchWordPressBaseline-opcache

  • 🟩 execution_time [-3.555ms; -1.311ms] or [-13.240%; -4.882%]

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