CVE-2026-116589: dd-trace-py: IAST % formatting error crashes process
AWAITING NVDDatadog's Python APM client (dd-trace-py) 3.13.0 through 4.15.4 has an unhandled-error flaw in its IAST string instrumentation: when old-style % formatting runs on attacker-controlled input, the error can terminate the whole Python process. The exposure is narrow, because it requires IAST to be explicitly enabled (not the default) and application code that applies the affected formatting operation to untrusted input. Even so, a crash in an AI service, such as an inference API, agent backend or RAG gateway, is a clean availability hit. No public exploit, Nuclei template or KEV listing exists, and no EPSS score is published yet, so this is a patch-in-cycle item rather than an emergency. Upgrade to dd-trace-py 4.15.5, and prioritize internet-facing services that run IAST and format user input with % strings.
What is the risk?
Severity is rated high, but no CVSS vector or EPSS score is available, so exploitability is not quantified. Real-world risk is limited by two preconditions: IAST must be enabled (non-default) and application code must pass attacker-controlled input through % formatting. Impact is limited to availability (CWE-248, uncaught exception). There is no indication of confidentiality or integrity impact. Risk is higher for single-process or low-redundancy AI services where one crash drops all in-flight work. Confidence: MEDIUM, since vector details are missing.
How does the attack unfold?
How severe is it?
What should I do?
1 step1) Upgrade ddtrace (dd-trace-py) to 4.15.5 or later in all environments, including container base images and lockfiles. 2) If patching is delayed, disable IAST (for example DD_IAST_ENABLED=false) on exposed services. 3) Inventory services running ddtrace 3.13.0 to 4.15.4 with IAST on, using SBOM or pip freeze plus environment configuration review. 4) Monitor for unexpected Python process exits, crash loops or OOM/restart spikes correlated with specific request payloads. 5) Ensure orchestration (Kubernetes restart policies, replicas, health checks) limits blast radius of single-process crashes. 6) Review the vendor advisory GHSA-p3m5-h5v9-vqj6 and fix PRs 20786 and 20823.
How is it classified?
Which compliance frameworks are affected?
This CVE is relevant to:
Frequently Asked Questions
What is CVE-2026-116589?
Datadog's Python APM client (dd-trace-py) 3.13.0 through 4.15.4 has an unhandled-error flaw in its IAST string instrumentation: when old-style % formatting runs on attacker-controlled input, the error can terminate the whole Python process. The exposure is narrow, because it requires IAST to be explicitly enabled (not the default) and application code that applies the affected formatting operation to untrusted input. Even so, a crash in an AI service, such as an inference API, agent backend or RAG gateway, is a clean availability hit. No public exploit, Nuclei template or KEV listing exists, and no EPSS score is published yet, so this is a patch-in-cycle item rather than an emergency. Upgrade to dd-trace-py 4.15.5, and prioritize internet-facing services that run IAST and format user input with % strings.
Is CVE-2026-116589 actively exploited?
No confirmed active exploitation of CVE-2026-116589 has been reported, but organizations should still patch proactively.
How to fix CVE-2026-116589?
1) Upgrade ddtrace (dd-trace-py) to 4.15.5 or later in all environments, including container base images and lockfiles. 2) If patching is delayed, disable IAST (for example DD_IAST_ENABLED=false) on exposed services. 3) Inventory services running ddtrace 3.13.0 to 4.15.4 with IAST on, using SBOM or pip freeze plus environment configuration review. 4) Monitor for unexpected Python process exits, crash loops or OOM/restart spikes correlated with specific request payloads. 5) Ensure orchestration (Kubernetes restart policies, replicas, health checks) limits blast radius of single-process crashes. 6) Review the vendor advisory GHSA-p3m5-h5v9-vqj6 and fix PRs 20786 and 20823.
What systems are affected by CVE-2026-116589?
This vulnerability affects the following AI/ML architecture patterns: Model serving, Agent frameworks, RAG pipelines, LLM API gateways, Application observability and security instrumentation.
What is the CVSS score for CVE-2026-116589?
No CVSS score has been assigned yet.
What is the AI security impact?
Affected AI Architectures
MITRE ATLAS Techniques
AML.T0029Denial of AI ServiceAML.T0049Exploit Public-Facing ApplicationCompliance Controls Affected
What are the technical details?
Original Advisory
Datadog dd-trace-py is the Datadog Python APM client. From 3.13.0 until 4.15.5, the IAST string-processing instrumentation does not properly handle certain internal errors while old-style % string formatting processes attacker-controlled input. An unhandled error can terminate the Python process and interrupt the work it is handling. Exploitation requires IAST to be enabled, which is not the default, and application code to apply the affected formatting operation to attacker-controlled input. This issue is fixed in version 4.15.5.
Exploitation Scenario
An adversary identifies an internet-facing LLM gateway or agent API that runs Datadog IAST in production. They send crafted prompts or request fields that the application embeds into log or message strings via old-style % formatting. The IAST instrumentation raises an unhandled internal error and the Python worker terminates. By repeating the request, the attacker keeps workers down and degrades or denies the AI service to legitimate users.
Weaknesses (CWE)
CWE-248 — Uncaught Exception: An exception is thrown from a function, but it is not caught.
Source: MITRE CWE corpus.
References
- github.com/DataDog/dd-trace-py/commit/69dc19853247434ceab83e0c1c4e279a2eb2a3f7
- github.com/DataDog/dd-trace-py/commit/ace972489b57dd020ff52b706bb548a354f2dd69
- github.com/DataDog/dd-trace-py/pull/20786
- github.com/DataDog/dd-trace-py/pull/20823
- github.com/DataDog/dd-trace-py/releases/tag/v4.15.5
- github.com/DataDog/dd-trace-py/security/advisories/GHSA-p3m5-h5v9-vqj6
Timeline
Related Vulnerabilities
CVE-2026-3366010.0TensorFlow: type confusion NPD in tensor conversion
Same attack type: DoSCVE-2023-256689.8TensorFlow: unauthenticated RCE via heap buffer overflow
Same attack type: DoSCVE-2022-235879.8TensorFlow: integer overflow in Grappler enables RCE
Same attack type: DoSCVE-2022-359399.8TensorFlow: ScatterNd OOB write enables RCE/crash
Same attack type: DoSCVE-2022-419009.8TensorFlow: heap OOB RCE in FractionalMaxPool op
Same attack type: DoS