Vulnerabilidad en pac4j (CVE-2023-25581)
Gravedad CVSS v4.0:
CRÍTICA
Tipo:
CWE-502
Deserialización de datos no confiables
Fecha de publicación:
10/10/2024
Última modificación:
15/10/2024
Descripción
pac4j es un framework de seguridad para Java. `pac4j-core` anterior a la versión 4.0.0 se ve afectado por una vulnerabilidad de deserialización de Java. La vulnerabilidad afecta a los sistemas que almacenan valores controlados externamente en atributos de la clase `UserProfile` de pac4j-core. Se puede explotar proporcionando un atributo que contenga un objeto Java serializado con un prefijo especial `{#sb64}` y codificación Base64. Este problema puede provocar la ejecución remota de código (RCE) en el peor de los casos. Aunque existe un `RestrictedObjectInputStream`, que impone algunas restricciones sobre qué clases se pueden deserializar, aún permite una amplia gama de paquetes de Java y es potencialmente explotable con diferentes cadenas de gadgets. Las versiones 4.0.0 y posteriores de pac4j no se ven afectadas por este problema. Se recomienda a los usuarios que actualicen. No existen workarounds para esta vulnerabilidad.
Impacto
Puntuación base 4.0
9.20
Gravedad 4.0
CRÍTICA
Referencias a soluciones, herramientas e información
- https://github.com/frohoff/ysoserial
- https://github.com/pac4j/pac4j/blob/5834aeb22ad3a4369dfa572be60d7b20f5784a8f/pac4j-core/src/main/java/org/pac4j/core/profile/InternalAttributeHandler.java#L95
- https://portswigger.net/web-security/deserialization
- https://securitylab.github.com/advisories/GHSL-2022-085_pac4j/



