Impact
The Datadog Single Step Instrumentation (SSI) injector (datadog-apm-inject) in the affected versions stores some helper tooling in a predictable directory on the host filesystem. A local unprivileged attacker with shell access to the same host can use this to execute code with the privileges of the instrumented Java service process in certain circumstances..
Affected systems are those where all of the following are true:
- Datadog Single Step Instrumentation (SSI) is enabled on Linux or Kubernetes
- At least one Java service is being instrumented via SSI
datadog-apm-inject version is below v0.66.0
Services using the Datadog Java agent (dd-java-agent) without SSI are not affected. No other language runtimes (Python, Ruby, Go, Node.js, .NET, PHP, Rust) are affected.
Patches
The issue is fixed in datadog-apm-inject v0.66.0+.
Users should upgrade to version 0.66.0 or later and restart all instrumented Java services:
- Kubernetes (Helm): Upgrade the Datadog Helm chart to a recent release (latest recommended). Remove any cluster-lever pinning of the injector in
datadog.apm.instrumentation.injector.imageTag. Remove any pod-level annotation (admission.datadoghq.com/apm-inject.version or admission.datadoghq.com/apm-inject.custom-image) that pins the injector to a version below 0.66.0. Restart the affected Java application deployments.
- Kubernetes (Datadog Operator): Upgrade the Datadog Operator to a recent release (latest recommended). Remove any cluster-level pinning of the injector in
spec.features.apm.instrumentation.injector.imageTag. Remove any pod-level annotation pinning an older injector version. Restart the affected Java application deployments.
- Linux: Upgrade the Datadog Agent and SSI components to the latest version using the install script or Fleet Automation. Verify the installed version with
cat /opt/datadog-packages/datadog-apm-inject/stable/version. Restart all affected Java applications.
Workarounds
If an immediate upgrade is not possible:
- Ensure the host or container running Java services has no other local users with shell access.
- In Kubernetes, enforce pod-level filesystem isolation and avoid shared
/tmp volumes across pods on the same node.
References
Impact
The Datadog Single Step Instrumentation (SSI) injector (
datadog-apm-inject) in the affected versions stores some helper tooling in a predictable directory on the host filesystem. A local unprivileged attacker with shell access to the same host can use this to execute code with the privileges of the instrumented Java service process in certain circumstances..Affected systems are those where all of the following are true:
datadog-apm-injectversion is below v0.66.0Services using the Datadog Java agent (
dd-java-agent) without SSI are not affected. No other language runtimes (Python, Ruby, Go, Node.js, .NET, PHP, Rust) are affected.Patches
The issue is fixed in
datadog-apm-injectv0.66.0+.Users should upgrade to version 0.66.0 or later and restart all instrumented Java services:
datadog.apm.instrumentation.injector.imageTag. Remove any pod-level annotation (admission.datadoghq.com/apm-inject.versionoradmission.datadoghq.com/apm-inject.custom-image) that pins the injector to a version below 0.66.0. Restart the affected Java application deployments.spec.features.apm.instrumentation.injector.imageTag. Remove any pod-level annotation pinning an older injector version. Restart the affected Java application deployments.cat /opt/datadog-packages/datadog-apm-inject/stable/version. Restart all affected Java applications.Workarounds
If an immediate upgrade is not possible:
/tmpvolumes across pods on the same node.References