CVE-2026-86404

Summary

EAP's Artemis deserialization configuration permits deserialization by default. ObjectMessage.getObject() uses ObjectInputStreamWithClassLoader, which implements allow-list/block-list filtering via its checkSecurity()/isTrustedType() method. However, by default both allow-list and block-list are empty. When the allow-list is empty (size == 0), isTrustedType() returns true for ALL classes. This means all classes are deserializable by default.

Affected Software

VendorProductVersion RangeStatus
Red HatRed Hat JBoss Enterprise Application Platform 7.4 ELS on RHEL 70:2.16.0-22.redhat_00057.1.el7eap < *unaffected
Red HatRed Hat JBoss Enterprise Application Platform 7.4 ELS on RHEL 70:2.3.14-11.SP11_redhat_00001.1.el7eap < *unaffected
Red HatRed Hat JBoss Enterprise Application Platform 7.4 ELS on RHEL 70:1.5.26-2.Final_redhat_00001.1.el7eap < *unaffected
Red HatRed Hat JBoss Enterprise Application Platform 7.4 ELS on RHEL 70:2.18.8-1.redhat_00003.1.el7eap < *unaffected
Red HatRed Hat JBoss Enterprise Application Platform 7.4 ELS on RHEL 70:2.18.8-1.redhat_00003.1.el7eap < *unaffected
Red HatRed Hat JBoss Enterprise Application Platform 7.4 ELS on RHEL 70:2.18.8-1.redhat_00003.1.el7eap < *unaffected
Red HatRed Hat JBoss Enterprise Application Platform 7.4 ELS on RHEL 70:2.18.8-1.redhat_00003.1.el7eap < *unaffected
Red HatRed Hat JBoss Enterprise Application Platform 7.4 ELS on RHEL 70:2.18.8-1.redhat_00003.1.el7eap < *unaffected
Red HatRed Hat JBoss Enterprise Application Platform 7.4 ELS on RHEL 70:2.18.8-1.redhat_00003.1.el7eap < *unaffected
Red HatRed Hat JBoss Enterprise Application Platform 7.4 ELS on RHEL 70:5.0.31-3.SP2_redhat_00001.1.el7eap < *unaffected
Red HatRed Hat JBoss Enterprise Application Platform 7.4 ELS on RHEL 70:1.10.0-46.Final_redhat_00044.1.el7eap < *unaffected
Red HatRed Hat JBoss Enterprise Application Platform 7.4 ELS on RHEL 70:4.1.135-1.Final_redhat_00001.1.el7eap < *unaffected
Red HatRed Hat JBoss Enterprise Application Platform 7.4 ELS on RHEL 70:4.1.135-1.Final_redhat_00001.1.el7eap < *unaffected
Red HatRed Hat JBoss Enterprise Application Platform 7.4 ELS on RHEL 70:2.5.5-30.SP12_redhat_00020.1.el7eap < *unaffected
Red HatRed Hat JBoss Enterprise Application Platform 7.4 ELS on RHEL 70:2.5.5-24.SP12_redhat_00016.1.el7eap < *unaffected
Red HatRed Hat JBoss Enterprise Application Platform 7.4 ELS on RHEL 70:2.2.40-2.SP3_redhat_00001.1.el7eap < *unaffected
Red HatRed Hat JBoss Enterprise Application Platform 7.4 ELS on RHEL 70:7.4.25-2.GA_redhat_00001.1.el7eap < *unaffected

Weaknesses

  • CWE-502: Deserialization of Untrusted Data

Workarounds

Configure a restrictive deserialization-allow-list on every pooled-connection-factory resource. For example, if your MDBs only expect to receive objects of type com.yourapp.OrderEvent, set the allow-list to "com.yourapp". This switches ObjectInputStreamWithClassLoader from "allow everything" to "deny by default, allow only listed classes." With this in place, even if an attacker injects a malicious ObjectMessage through any vector, the deserialization of gadget chain classes is blocked.

References