Skip to content

Bump ddtrace to 4.12.2 (CVE-2026-50271 W3C baggage header DoS) - #24864

Open
Kyle-Neale wants to merge 4 commits into
masterfrom
kyle.neale/ddtrace-4x-vuln
Open

Bump ddtrace to 4.12.2 (CVE-2026-50271 W3C baggage header DoS)#24864
Kyle-Neale wants to merge 4 commits into
masterfrom
kyle.neale/ddtrace-4x-vuln

Conversation

@Kyle-Neale

@Kyle-Neale Kyle-Neale commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

What does this PR do?

Bumps the pinned ddtrace dependency from 3.19.5 to 4.12.2 in both agent_requirements.in and datadog_checks_base/pyproject.toml (ddtrace is a direct datadog_checks_base dependency). The .deps/resolved/* lock files and .deps/builder_inputs.toml are regenerated and committed automatically by the Resolve Dependencies and Build Wheels workflow once this branch is pushed.

Motivation

ddtrace < 4.8.2 is vulnerable to a W3C baggage-header parsing DoS, tracked against agent-integrations:

Per both the GitHub Advisory and OSV, the fix landed only in ddtrace 4.8.2 — there is no 3.19.x backport branch — so remediation requires a major version bump from 3.19.5. This targets 4.12.2 (the version vetted by the VULN campaign in #24756).

Unlike the earlier campaign attempt (#24617), the pin is updated consistently in both agent_requirements.in and datadog_checks_base/pyproject.toml, so ddev validate dep passes locally.

ddtrace 4.12.2 requires wrapt!=2.2.0,<3,>=1; the current wrapt==2.2.2 pin already satisfies this, so no wrapt change is bundled here.

Review checklist (to be filled by reviewers)

  • Feature or bugfix MUST have appropriate tests (unit, integration, e2e)
  • Add qa/required if this PR needs QA validation, or qa/skip-qa if it does not. Exactly one of the two is required.
  • If you need to backport this PR to another branch, you can add the backport/<branch-name> label to the PR and it will automatically open a backport PR once this one is merged

🤖 Generated with Claude Code

Remediates the W3C baggage-header parsing DoS reported as CVE-2026-50271 /
PYSEC-2026-3461 / GHSA-mw54-j2v2-42hr (VULN-91804, High). The fix landed only
in ddtrace 4.8.2; there is no 3.19.x backport, so this is a forced major bump
from 3.19.5.

Pins are updated consistently in both agent_requirements.in and
datadog_checks_base/pyproject.toml so `ddev validate dep` passes. The
.deps/resolved/* lock files are regenerated by the resolve-build-deps workflow.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

Warning

This PR changes Agent dependencies. Do not merge it until the wheels are promoted.

Dependency inputs changed, so the dependency resolution and wheel build workflow runs on this branch. It takes 1.5 to 3 hours and finishes by committing updated lockfiles. The wheels it builds then have to be promoted before the Agent can use them.

Steps to take, in order:

  1. Wait for the resolution workflow to finish and commit the lockfiles to this branch.
  2. Review the Agent build triggered by that commit (default-pipeline in GitLab), especially static_quality_gate.
  3. Get the PR approved.
  4. Promote the wheels:
    ddev dep promote https://github.com/DataDog/integrations-core/pull/24864
    
  5. Wait for dependency-wheel-promotion to turn green. Only then merge.

Merging before promotion leaves the Agent unable to install the wheels these lockfiles pin. dependency-wheel-promotion is a required check: if it is pending or red, that is intentional. Do not bypass it and do not ask for an admin merge.

Pushing again to this branch invalidates the promotion, so if you push after step 4 you have to promote again.

Head commit 831009edaff153955845b18e1b1b60284e6e149a. Full process: Dependency Updates. This comment is updated automatically as promotion progresses.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@Kyle-Neale Kyle-Neale added the qa/required QA is required for this PR and will generate a QA card label Aug 14, 2026
@cit-pr-commenter-54b7da

cit-pr-commenter-54b7da Bot commented Aug 14, 2026

Copy link
Copy Markdown

evalya-impact-summary

evalya impact analysis
Impact analysis: 0 selected, 0 skipped (of 0 test tasks)
Publish tasks:   1 (always emitted)
Diff (4 files):
  .ddev/config.toml
  agent_requirements.in
  datadog_checks_base/changelog.d/24864.security
  datadog_checks_base/pyproject.toml

Debug a specific task: evalya plan impact --path <path> --task <task>

Learn more about CI impact filtering

The macOS 11 blocker that froze ddtrace on the auto-update exclude list is
resolved: the Agent dropped macOS 11 support in v7.75.0 (VULN-91804). Re-enable
automatic ddtrace bumps now that the pin has moved to the 4.x line.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@datadog-datadog-us1-prod

datadog-datadog-us1-prod Bot commented Aug 14, 2026

Copy link
Copy Markdown

Tests  Code Coverage

🎉 All green!

🧪 All tests passed
❄️ No new flaky tests detected

🔄 Datadog retried 1 test - 1 passed on retry View in Datadog

🚧 5 tests that failed were ignored due to quarantine View in Datadog

🎯 Code Coverage (details)
Patch Coverage: 100.00%
Overall Coverage: 89.75%

This comment will be updated automatically if new data arrives.
🔗 Commit SHA: 831009e | Docs | Datadog PR Page | Give us feedback!

@Kyle-Neale
Kyle-Neale marked this pull request as ready for review August 14, 2026 15:39
@Kyle-Neale
Kyle-Neale requested a review from a team as a code owner August 14, 2026 15:39
@dd-octo-sts
dd-octo-sts Bot requested a review from a team as a code owner August 14, 2026 15:49
@dd-octo-sts

dd-octo-sts Bot commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

Validation Report

All 21 validations passed.

Show details
Validation Description Status
agent-reqs Verify check versions match the Agent requirements file
ci Validate CI configuration and code coverage settings
codeowners Validate every integration has a CODEOWNERS entry
config Validate default configuration files against spec.yaml
dep Verify dependency pins are consistent and Agent-compatible
http Validate integrations use the HTTP wrapper correctly
imports Validate check imports do not use deprecated modules
integration-style Validate check code style conventions
jmx-metrics Validate JMX metrics definition files and config
labeler Validate PR labeler config matches integration directories
legacy-signature Validate no integration uses the legacy Agent check signature
license-headers Validate Python files have proper license headers
licenses Validate third-party license attribution list
metadata Validate metadata.csv metric definitions
models Validate configuration data models match spec.yaml
openmetrics Validate OpenMetrics integrations disable the metric limit
package Validate Python package metadata and naming
qa-label Validate the pull request declares whether it needs QA for the next Agent release
readmes Validate README files have required sections
saved-views Validate saved view JSON file structure and fields
version Validate version consistency between package and changelog

View full run

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants