CVE-2026-116589: Datadog dd-trace-py process abort in IAST string formatting

CVE-2026-116589 · Severity: high · CVSS 4 · Published 2026-10-26

Datadog's dd-trace-py is a Python application performance monitoring client. When IAST security instrumentation is enabled (a security scanning feature), a flaw in string formatting handling can crash the Python process if the application processes attacker-supplied input containing certain rare Unicode characters. This interrupts service availability but requires IAST to be explicitly enabled and specific application code patterns.

Technologies: Datadog Dd-Trace-Py, ddtrace (PyPI). Vendors: Datadog, PyPI.

Quick answers

Is CVE-2026-116589 exploited in the wild?
No. Junglewise Threat Intelligence has no report of CVE-2026-116589 being exploited in the wild.
How severe is CVE-2026-116589?
High severity, with a CVSS score of 4, published 26 October 2026.
Which products and versions are affected?
Datadog Dd-Trace-Py 3.13.0 to 4.15.4; ddtrace (PyPI) >= 3.13.0, < 4.15.5, ECOSYSTEM:introduced=3.13.0,fixed=4.15.5.
Is there a fix for CVE-2026-116589?
Yes. ddtrace (PyPI): upgrade to 4.15.5 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
How is CVE-2026-116589 attacked?
It is attacked over the network.
Am I affected by CVE-2026-116589?
Check whether you run Datadog Dd-Trace-Py or ddtrace (PyPI) at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

How to fix

  • ddtrace (PyPI): upgrade to 4.15.5 or later
    pip install "ddtrace>=4.15.5"

Technical details

The IAST string-processing instrumentation in dd-trace-py does not properly handle unencoded Unicode surrogates (U+D800–U+DFFF) when converting parameters during old-style % string formatting operations. An uncaught C++ exception escapes across the Python/C++ boundary when tainted input containing lone surrogates is processed, causing std::terminate() to be called and the entire Python process to abort. Exploitation requires IAST to be enabled (non-default) and application code performing % formatting on attacker-controlled strings containing UTF-16 surrogates.

Affected products

  • Datadog dd-trace-py 3.13.0 to 4.15.4

Identifiers

  • CVE-2026-116589
  • GHSA-p3m5-h5v9-vqj6

Timeline

  • 2026-10-26: disclosed

References

This page as Markdown. Free to reuse under CC BY 4.0 with a link back.