Get ahead
VMware offers training and certification to turbo-charge your progress.
Learn moreAn application using Spring Security's WebAuthn support may be vulnerable to user verification bypass when using a distributed HTTP session store.
Spring Security compares UserVerificationRequirement using identity (==) when determining whether user verification is required during a WebAuthn ceremony. When HTTP sessions are serialized and deserialized, as occurs with distributed session stores (e.g., Spring Session with Redis or JDBC), the deserialized UserVerificationRequirement instance is not the same object reference as the static constant REQUIRED. The identity comparison evaluates to false, silently disabling the user verification requirement.
An application is vulnerable when all of the following conditions are met:
userVerification = REQUIRED (the default is PREFERRED and is not affected).When all the conditions above are met, an attacker who has obtained a user's authenticator device may be able to complete WebAuthn authentication without satisfying the user verification step (e.g., PIN or biometric), even when the relying party has explicitly required it.
Spring Security:
| Fix version | Availability |
|---|---|
| 7.1.1 | OSS |
| 7.1.0.1 | Enterprise Support Only |
| 7.0.7 | OSS |
| 7.0.6.1 | Enterprise Support Only |
| 6.5.12 | Enterprise Support Only |
| 6.4.19 | Enterprise Support Only |
No further mitigation steps are necessary.
The issue was identified and responsibly reported by Yu Bao from PayPal Cybersecurity Team.
To report a security vulnerability for a project within the Spring portfolio, see the Security Policy