CVE-2026-47065
Java vulnerability analysis and mitigation

Overview

CVE-2026-47065 describes two critical deserialization filter bypass vulnerabilities in Apache MINA, collectively enabling unauthenticated remote code execution. The first issue (ZDRES-232) involves the failure to override resolveProxyClass(), allowing attackers to bypass the accepted classes filter via java.lang.reflect.Proxy. The second issue (ZDRES-233) allows static initializers (<clinit>) of allow-listed classes to be triggered before any instance is constructed, enabling arbitrary code execution. Both vulnerabilities carry a CVSS v3.1 base score of 9.8 (Critical) and are classified under CWE-502 (GitHub Advisory, Apache Advisory). The vulnerability was published on June 3, 2026, with patches made available by Apache on June 2–7, 2026.

Technical details

The root cause is improper deserialization of untrusted data (CWE-502) in Apache MINA's object deserialization handling. For ZDRES-232: when a serialized stream contains a TC_PROXYCLASSDESC marker, JDK's ObjectInputStream.readProxyDesc() is dispatched, which calls the default resolveProxyClass(interfaces) implementation. This performs Class.forName(intf, false, latestUserDefinedLoader()) for each interface name and constructs the proxy class entirely outside the accepted classes filter. For ZDRES-233: deserializing a stream that names any class on the allow-list triggers that class's static initializer (<clinit>) before any instance is constructed — meaning an attacker who supplies a class name matching an allow-list pattern (e.g., com.myapp.*) can cause execution of arbitrary static initializer code in real-world classes with side-effecting initializers. Both attack vectors require no authentication or user interaction and are exploitable over the network (GitHub Advisory).

Impact

Successful exploitation of either vulnerability allows an unauthenticated remote attacker to achieve arbitrary code execution on the affected Apache MINA server, resulting in high impact to confidentiality, integrity, and availability. An attacker can bypass deserialization filters to instantiate arbitrary proxy classes or trigger static initializers of allow-listed classes, potentially leading to complete system compromise, data exfiltration, or service disruption. The network-accessible nature of the attack with no privilege or interaction requirements significantly broadens the potential attack surface (GitHub Advisory, Apache Advisory).

Exploitability

As of the time of reporting, there is no public proof-of-concept exploit and no evidence of in-the-wild exploitation (GitHub Advisory). The EPSS score is approximately 0.046% (19th percentile), indicating a currently low probability of exploitation within 30 days. The vulnerability is not listed in the CISA Known Exploited Vulnerabilities (KEV) catalog. No threat actor attribution has been reported. The vulnerability has been detected by Nessus (plugin ID 318697) (Tenable).

Exploitation steps

  1. Reconnaissance: Identify Apache MINA services exposed over the network that accept serialized Java object streams, using network scanning tools or service fingerprinting.
  2. Craft malicious serialized stream (ZDRES-232): Construct a serialized Java object stream containing a TC_PROXYCLASSDESC marker referencing arbitrary interface names. Because resolveProxyClass() is not overridden, the JDK will call Class.forName() for each interface, bypassing the accepted classes filter.
  3. Craft malicious serialized stream (ZDRES-233): Alternatively, construct a serialized stream naming a class that matches the server's allow-list pattern (e.g., com.myapp.SomeClass). Upon deserialization, the class's static initializer (<clinit>) is triggered before any instance is created, executing attacker-controlled side effects if the class has a weaponizable initializer.
  4. Send payload: Transmit the crafted serialized stream to the target Apache MINA endpoint over the network without any authentication.
  5. Achieve code execution: The deserialization process executes the attacker's payload — either via proxy class instantiation or static initializer execution — resulting in arbitrary code execution on the server (GitHub Advisory).

Indicators of compromise

  • Network: Unexpected or malformed Java serialized object streams (beginning with magic bytes AC ED 00 05) sent to Apache MINA service ports from untrusted sources; unusual outbound connections from the MINA server process following deserialization activity.
  • Logs: Deserialization errors or class-loading exceptions in Apache MINA logs referencing unexpected class names or proxy interfaces; log entries showing Class.forName() invocations for classes outside normal application flow.
  • Process: Unexpected child processes spawned by the Apache MINA Java process (e.g., shell interpreters, network utilities); unusual JVM thread activity associated with static initializer execution.
  • File System: New or modified files in the MINA application directory created by the service account; unexpected scripts or binaries dropped post-exploitation.

Mitigation and workarounds

Apache has released patches addressing both ZDRES-232 and ZDRES-233, with security updates published on June 2 and June 7, 2026. Users should update Apache MINA to the latest patched version as referenced in the Apache MINA Security Advisory. As interim mitigations, implement network-level controls to restrict access to MINA deserialization endpoints to trusted sources only, and consider deploying serialization filters (e.g., JVM-level ObjectInputFilter) to validate object streams before deserialization. Avoid overly broad allow-list patterns (e.g., com.myapp.*) that could be exploited via ZDRES-233 (Apache Advisory, GitHub Advisory).

Community reactions

The vulnerability received coverage from security news outlets including SecurityOnline.info and was included in CISA's weekly vulnerability bulletin for the week of June 1, 2026 (CISA Bulletin). It was also highlighted in the Hawk-Eye weekly threat landscape digest for Week 24, 2026 (Hawk-Eye). Community discussion was noted on Infosec.Exchange via VulnDB (Infosec.Exchange). General sentiment reflects concern over the critical CVSS score and the subtlety of the filter bypass mechanisms, though the absence of public exploits has tempered urgency somewhat.

Additional resources


SourceThis report was generated using AI

Related Java vulnerabilities:

CVE ID

Severity

Score

Technologies

Component name

CISA KEV exploit

Has fix

Published date

CVE-2026-61827HIGH8.7
  • Java logoJava
  • io.netty.incubator:netty-incubator-codec-bhttp
NoYesAug 20, 2026
CVE-2026-61798HIGH8.1
  • Java logoJava
  • io.netty.incubator:netty-incubator-codec-ohttp-hpke-classes-boringssl
NoYesAug 20, 2026
CVE-2026-63202HIGH7.5
  • Java logoJava
  • io.netty.incubator:netty-incubator-codec-bhttp
NoYesAug 20, 2026
CVE-2026-63124HIGH7.5
  • Java logoJava
  • io.netty.incubator:netty-incubator-codec-bhttp
NoYesAug 20, 2026
CVE-2026-61799MEDIUM5.3
  • Java logoJava
  • io.netty.incubator:netty-incubator-codec-bhttp
NoYesAug 20, 2026

Free Vulnerability Assessment

Benchmark your Cloud Security Posture

Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.

Request assessment

Get a personalized demo

Ready to see Wiz in action?

"Best User Experience I have ever seen, provides full visibility to cloud workloads."
David EstlickCISO
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
Adam FletcherChief Security Officer
"We know that if Wiz identifies something as critical, it actually is."
Greg PoniatowskiHead of Threat and Vulnerability Management