Description
pac4j-saml before 6.5.6 does not require signature validation of SAML LogoutRequest messages in SAML2LogoutValidator.validateLogoutRequest(). When an IdP sends no SessionIndex, a session can be destroyed based solely on the NameID, allowing an unauthenticated attacker to submit an unsigned LogoutRequest with a guessed identifier (e.g., an email address used as NameID) to terminate a victim's SAML session.
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| pac4j | pac4j | < 6.5.6 | 6.5.6 |
References
- Patch Commit patch
- pac4j Security Advisory for pac4j-core, pac4j-oidc and pac4j-saml vendor-advisory
- https://github.com/pac4j/pac4j/blob/pac4j-parent-6.5.5/pac4j-saml/src/main/java/org/pac4j/saml/logout/impl/SAML2LogoutValidator.java technical-description
- https://github.com/pac4j/pac4j product
- VulnCheck Advisory: pac4j-saml before 6.5.6 Session Destruction via Unsigned LogoutRequest third-party-advisory