VDB
KO
CRITICAL

GHSA-gf8h-gq53-288j

OpenAM: WebAuthn Java deserialization RCE via ObjectInputFilter depth>1 bypass

Quick fix

GHSA-gf8h-gq53-288j — org.openidentityplatform.openam:openam-auth-webauthn: upgrade to the fixed version with the command below.

# pom.xml: bump <version>16.1.2</version> for org.openidentityplatform.openam:openam-auth-webauthn

Details

### Summary The GHSA-6c99-87fr-6q7r 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`.

Are you affected?

Enter the version of the package you're using.

Affected packages

Maven / org.openidentityplatform.openam:openam-auth-webauthn
Introduced in: 0 Fixed in: 16.1.2
Fix # pom.xml: bump <version>16.1.2</version> for org.openidentityplatform.openam:openam-auth-webauthn

References