CVE-2026-33701: OpenTelemetry: Unsafe Deserialization in RMI Instrumentation may Lead to Remote Code Execution
OpenTelemetry Java Instrumentation provides OpenTelemetry auto-instrumentation and instrumentation libraries for Java. In versions prior to 2.26.1, 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, OpenTelemetry Java instrumentation is attached as a Java agent (`-javaagent`) on Java 16 or earlier. Second, JMX/RMI port has been explicitly configured via `-Dcom.sun.management.jmxremote.port` and is network-reachable. Third, gadget-chain-compatible library is present on the classpath. This results in arbitrary remote code execution with the privileges of the user running the instrumented JVM. For JDK >= 17, no action is required, but upgrading is strongly encouraged. For JDK < 17, upgrade to version 2.26.1 or later. As a workaround, set the system property `-Dotel.instrumentation.rmi.enabled=false` to disable the RMI integration.
Security readout for executives and security teams
Plain-English summary
This flaw can let an unauthenticated network attacker run code on a vulnerable Java service, but only under a narrow configuration. The service must use OpenTelemetry Java Instrumentation before 2.26.1 as a Java agent, run on JDK 16 or earlier, expose JMX/RMI, and include a compatible gadget library.
Executive priority
Treat this as urgent for older Java services exposing management interfaces. The practical risk is concentrated, but compromise could mean full application-level code execution. Prioritize internet- or network-reachable JMX/RMI deployments first.
Technical view
OpenTelemetry Java Instrumentation before 2.26.1 registered an RMI endpoint that deserialized inbound data without serialization filters. On JDK 16 or earlier, reachable JMX/RMI plus a gadget-chain-compatible classpath can produce remote code execution as the JVM process user. The issue is CWE-502 and rated CVSS 4.0 9.3.
Likely exposure
Exposure is limited to Java services using opentelemetry-java-instrumentation before 2.26.1 with -javaagent on JDK 16 or earlier, where JMX/RMI is explicitly enabled and reachable. JDK 17 or later is stated as requiring no action, although upgrade is still encouraged.
Exploitation context
The bundle marks CISA KEV as false and provides no evidence of active exploitation. Exploitation requires network access to the JMX or RMI port and a compatible classpath. If successful, code runs with the privileges of the instrumented JVM user.
Researcher notes
The vulnerability centers on unsafe deserialization in RMI instrumentation without serialization filters. The stated exploit preconditions are cumulative, so triage should verify all three before declaring exposure. The provided sources name the fix version and workaround but do not establish active exploitation.
Mitigation direction
Upgrade OpenTelemetry Java Instrumentation to version 2.26.1 or later.
For JDK below 17, prioritize remediation of exposed JMX/RMI services.
Set -Dotel.instrumentation.rmi.enabled=false as the documented workaround.
Remove unnecessary network exposure of JMX/RMI ports.
Check vendor guidance for downstream packaged impacts.
Validation and detection
Inventory Java services using the OpenTelemetry Java agent.
Confirm OpenTelemetry Java Instrumentation version is 2.26.1 or later.
Identify services running on JDK 16 or earlier.
Review JVM settings for configured JMX/RMI ports.
Validate whether those ports are network-reachable.
Assess classpaths for deserialization gadget-chain-compatible libraries.
Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.
Potential ATT&CK relevance
Conservative CVE-to-ATT&CK context
These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.
ATT&CK lookup starting points
Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.
cwe · medium confidence lookup
CWE-502: Code execution behavior lookup
Code execution and unsafe deserialization weaknesses often justify reviewing execution behavior and process telemetry. Open the exact CWE lookup page first, then review the ATT&CK searches from that MITRE weakness context. This is a Glexia lookup hint, not an official ATT&CK mapping.
The CVE wording references code or command execution, so execution technique review may help defensive triage. This is a Glexia inferred lookup path, not an official MITRE, ATT&CK, or CVE Program mapping.
These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.
2CVSS vectors
5Timeline events
2ADP providers
7Source links
SSVC decision data
CISA-ADPCISA Coordinator
Timestamp
Version
2.0.3
Exploitation: noneAutomatable: yesTechnical Impact: total
CVSS vector scores
2 official scores
We collect every scored CVSS vector available in the official CNA and ADP containers. When more than one version is present, the table keeps the source vectors side by side instead of collapsing them into the highest score.
CWE links open Glexia weakness intelligence pages with official CWE context, developer remediation guidance, and related CVE mappings.
CWE-502 · source CWE mapping
Deserialization of Untrusted Data
Deserialization of Untrusted Data represents a recurring weakness pattern that can create exploitable paths when design, validation, or implementation controls are missing.