Skip to content

OpenAM WebAuthn Java deserialization RCE via ObjectInputFilter depth

High
vharseko published GHSA-gf8h-gq53-288j Jul 23, 2026

Package

maven org.openidentityplatform.openam:openam-auth-webauthn (Maven)

Affected versions

<= 16.1.1

Patched versions

16.1.2

Description

Summary

The GHSA-6c99 fix wrapped WebAuthn authenticator deserialization in an ObjectInputFilter meant to allow only AuthenticatorImpl, but it short-circuits to ALLOWED for any object at stream depth > 1. Because the Java serialization filter is consulted for every class in the graph (and depth == 1 only for the root's concrete class), the allowlist constrains only the root and leaves the entire nested graph unchecked.

Impact

An attacker can craft a stream rooted at AuthenticatorImpl with an arbitrary gadget chain nested inside. The gadget's readObject/readResolve executes during readObject() — before the cast and before any assertion verification — enabling remote code execution when a gadget is on the classpath. The deserialization sink is reached pre-authentication via an attacker-chosen userHandle.

References

Severity

High

CVE ID

CVE-2026-62263

Weaknesses

Deserialization of Untrusted Data

The product deserializes untrusted data without sufficiently ensuring that the resulting data will be valid. Learn more on MITRE.

Credits