What this actually is.
Technical background, root cause, and affected surface.
Two flaws in mina-core's ObjectSerializationDecoder let attackers bypass the acceptMatchers allow-list: resolveProxyClass was not overridden, so TC_PROXYCLASSDESC entries resolve arbitrary interfaces via Class.forName and build proxy classes outside the accepted list (ZDRES-232); and readClassDescriptor called Class.forName(name, true, classLoader), running static initialisers of allow-listed classes before instantiation (ZDRES-233).
- Product
- Apache MINA
- Vendor
- Apache
- Severity
- Critical
- CVSS Score
- 9.8
- Status
- Published
- Vector
- CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
- CWE
- CWE-502: Deserialization of Untrusted Data
From one request
to root shell.
Reproduced in a sandboxed environment. Requires only LAN or WiFi adjacency.
The bug, and the fix.
mina-core ObjectSerializationInputStream / decoder: default ObjectInputStream.resolveProxyClass() not overridden; readClassDescriptor() -> Class.forName(name, initialize=true, classLoader)
What an attacker does to you.
Post-exploitation outcomes mapped to CVSS impact metrics.
Bypass of deserialization allow-list leading to potential remote code execution
C:H · I:H · A:H
CWE-502: Deserialization of Untrusted Data
Fix it. In this order.
A runbook, not a checklist. Sequence matters — assume compromise before you act.
Upgrade Apache MINA to 2.2.8, 2.1.13 or 2.0.29 or later.
disclose@securin.ioVendors moved in days.
Attackers in hours.
Reconstructed from vendor advisories, CISA bulletins, and Securin research records.
Reported to vendor
Fixed release published (2.2.8 / 2.1.13 / 2.0.29)
Vendor advisory published
CVE published to MITRE
Disclosed 12 days after discovery
Cite, verify, go deeper.
Primary sources — NVD, CISA KEV, and machine-readable IoC feed.