dd-trace-java — это клиент Datadog APM для Java. В версиях dd-trace-java от 0.40.0 до 1.60.2 инструментарий RMI регистрировал пользовательскую конечную точку, которая десериализовала входящие данные без применения фильтров сериализации. В JDK версии 16 и более ранних злоумышленник, имеющий сетевой доступ к порту JMX или RMI на инструментированной JVM, может использовать это для потенциального удаленного выполнения кода.
Для использования этой уязвимости должны выполняться все три следующих условия: Во-первых, dd-trace-java подключается как агент Java (`-javaagent`) в Java 16 или более ранней версии. Во-вторых, порт JMX/RMI был явно настроен через `-Dcom.sun.management.jmxremote.port` и доступен по сети. В-третьих, в пути к классам присутствует библиотека, совместимая с цепочкой гаджетов.
Для JDK >= 17 никаких действий не требуется, но обновление настоятельно рекомендуется. Для JDK >= 8u121 < JDK 17 обновите dd-trace-java до версии 1.60.3 или новее. Для JDK < 8u121 и более ранних версий, где фильтры сериализации недоступны, примените обходной путь.
Обходной путь — установить следующую переменную среды, чтобы отключить интеграцию RMI: `DD_INTEGRATION_RMI_ENABLED=false`.
Показать оригинальное описание (EN)
dd-trace-java is a Datadog APM client for Java. In versions of dd-trace-java 0.40.0 through prior to 1.60.2, the RMI instrumentation registered a custom endpoint that deserialized incoming data without applying serialization filters. On JDK version 16 and earlier, an attacker with network access to a JMX or RMI port on an instrumented JVM could exploit this to potentially achieve remote code execution. All three of the following conditions must be true to exploit this vulnerability: First, dd-trace-java is attached as a Java agent (`-javaagent`) on Java 16 or earlier. Second, a JMX/RMI port has been explicitly configured via `-Dcom.sun.management.jmxremote.port` and is network-reachable, Third, a gadget-chain-compatible library is present on the classpath. For JDK >= 17, no action is required, but upgrading is strongly encouraged. For JDK >= 8u121 < JDK 17, upgrade to dd-trace-java version 1.60.3 or later. For JDK < 8u121 and earlier where serialization filters are not available, apply the workaround. The workaround is to set the following environment variable to disable the RMI integration: `DD_INTEGRATION_RMI_ENABLED=false`.
Характеристики атаки
Последствия
Строка CVSS v4.0