Bug 2484326 (CVE-2026-47065) - CVE-2026-47065 mina: mina: Arbitrary Code Execution via Deserialization Bypass
Summary: CVE-2026-47065 mina: mina: Arbitrary Code Execution via Deserialization Bypass
Keywords:
Status: NEW
Alias: CVE-2026-47065
Product: Security Response
Classification: Other
Component: vulnerability
Version: unspecified
Hardware: All
OS: Linux
low
low
Target Milestone: ---
Assignee: Product Security
QA Contact:
URL:
Whiteboard:
Depends On: 2508525 2508526
Blocks:
TreeView+ depends on / blocked
 
Reported: 2026-06-03 11:01 UTC by OSIDB Bzimport
Modified: 2026-07-29 19:13 UTC (History)
33 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed:
Embargoed:


Attachments (Terms of Use)

Description OSIDB Bzimport 2026-06-03 11:01:17 UTC
ZDRES-232: resolveProxyClass Not Overridden - acceptMatchers Filter Bypass via java.lang.reflect.Proxy


Assessment: Fully addressed.


When the serialised stream contains a TC_PROXYCLASSDESC (the marker 
for a java.lang.reflect.Proxy ), JDK’s ObjectInputStream.readProxyDesc()
 is
dispatched. JDK then calls the default 
ObjectInputStream.resolveProxyClass(interfaces) implementation, which 
performs Class.forName(intf, false, latestUserDefinedLoader()) for EACH 
interface name and constructs the proxy class — bypassing the accepted
 classes list .


ZDRES-233: Class.forName(name, initialize=true, classLoader) in 
readClassDescriptor Triggers Static Initialiser of Allow-Listed Classes


Assessment: Fully addressed.


For ANY class on the allow-list, deserialising a stream that names it triggers the class’s 
 (static initialiser) BEFORE any instance is constructed. This means an 
attacker who supplies a class name on the allow-list (e.g., the 
developer wrote accept(“com.myapp.*") , attacker supplies 
com.myapp.SomeClass ) causes <clinit> of SomeClass — and many 
real-world classes have side-effecting static initialisers


Both issues have been fixed.


Note You need to log in before you can comment on or make changes to this bug.