Pre-authentication Java deserialization RCE in OpenIdentityPlatform OpenAM
CVE-2026-33439 is an unsafe Java deserialization vulnerability in OpenIdentityPlatform OpenAM versions prior to 16.0.6. The ClientSession constructor accepts the attacker-controlled jato.clientSession HTTP parameter, which is decoded and passed through Encoder.deserialize() to ApplicationObjectInputStream.readObject() without class filtering. Deserialization occurs during JSP rendering when a JATO ViewBean page contains a jato:form tag, including unauthenticated password-reset pages. This separate deserialization path was not covered by the WhitelistObjectInputStream protection applied to jato.pageSession after CVE-2021-35464. A crafted serialized object supplied through a GET or POST request can execute arbitrary code without authentication.
What it means and what to do now: patch path, interim mitigations, and the assume-compromise checklist.
What an attacker gets, and what they’ve been doing with it.
An unauthenticated remote attacker can execute arbitrary commands with the privileges of the OpenAM server process, compromising the confidentiality, integrity, and availability of the affected server. Successful exploitation can permit access to data available to that process, modification of application data or functionality, and service disruption. Elevated operating-system privileges are not established by the vulnerability itself.
If you can’t patch tonight, do this now.
Until an upgrade is possible, restrict untrusted network access to affected JATO ViewBean endpoints, particularly unauthenticated password-reset pages. Consider blocking requests containing jato.clientSession at an upstream proxy or application firewall, covering both GET query parameters and POST parameters and accounting for request encoding. These exposure-reduction measures are not substitutes for the fixed release.
Patch, then assume compromise.
Upgrade OpenIdentityPlatform OpenAM to version 16.0.6 or a later fixed release. Version 16.0.6 routes Encoder.deserialize() through IOUtils.deserialise(), applying the existing WhitelistObjectInputStream class restrictions to jato.clientSession as well as jato.pageSession.
9 exploits validated by Mallory's analysis. Hidden: 1 rejected by Mallory's analysis as not a working exploit.
Products and vendors Mallory has correlated with this vulnerability. Open in Mallory to drill down to specific CPE configurations and version ranges.
15 sources tracked across advisories, community write-ups, and news. New activity surfaces here as Mallory finds it.