Se ha identificado una vulnerabilidad de seguridad crítica en pac4j, un popular marco de seguridad de Java, que afecta particularmente a las versiones anteriores a la 4.0.
La vulnerabilidad, rastreada como CVE-2023-25581, permite la ejecución remota de código (RCE) y plantea un riesgo significativo para los sistemas que utilizan versiones afectadas de pac4j-core.
Esta vulnerabilidad se debe a una falla en el proceso de deserialización dentro de la clase 'InternalAttributeHandler' en pac4j-core. Esta falla permite a un atacante explotar sistemas que almacenan valores controlados externamente en atributos de la clase “UserProfile”.
Al proporcionar un atributo que tiene el prefijo `{#sb64}` y contiene un objeto Java serializado codificado en Base64, un atacante puede desencadenar la deserialización de cualquier clase Java.
Esto es particularmente peligroso porque puede provocar un RCE que permita a un atacante malintencionado ejecutar código arbitrario en un sistema afectado.
Analiza archivos sospechosos con ANY.RUN: Intergarte With You Security Team -> Pruébalo gratis
Este problema fue descubierto por Michael Stepankin de GitHub Security Lab (GHSL) y reportado al equipo de desarrollo de pac4j el 2 de febrero de 2023.
El equipo reconoció este informe y publicó una solución el 14 de febrero de 2023, lanzando la versión 4.0 de pac4j-core.
pac4j es vulnerable a los ataques RCE
La vulnerabilidad tiene su origen en la forma en que el método 'restore' dentro de 'InternalAttributeHandler' maneja los atributos de cadena.
Este método no puede verificar si el valor de la cadena ya comienza con el prefijo `{#sb64}` antes de intentar deserializarlo.
Este descuido se puede aprovechar manipulando atributos como el nombre de usuario y el correo electrónico para incluir objetos serializados maliciosos.
A pesar de la existencia de 'RestrictedObjectInputStream', que impone algunas restricciones a la deserialización, una amplia gama de paquetes Java siguen siendo vulnerables debido a la posibilidad de cadenas de dispositivos explotables.
El impacto potencial de esta vulnerabilidad es grave porque permite ataques RCE, lo que podría comprometer la confidencialidad, la integridad y la disponibilidad.
Se recomienda encarecidamente a los usuarios de pac4j-core que actualicen a la versión 4.0 o posterior, que soluciona este fallo de seguridad. Actualmente no existe ninguna solución alternativa para este problema.
El descubrimiento y divulgación de esta vulnerabilidad resalta la importancia de las actualizaciones periódicas y la vigilancia para mantener la seguridad del software.
Los marcos Java como pac4j son esenciales para muchas aplicaciones, por lo que es importante protegerlos contra posibles vulnerabilidades.
Esta vulnerabilidad pone de relieve los continuos desafíos a la hora de proteger los marcos de software de ataques avanzados.
La rápida respuesta del equipo de pac4j al CVE-2023-25581 demuestra su compromiso con la seguridad y enfatiza la necesidad de que los desarrolladores continúen aplicando actualizaciones y parches de manera proactiva.
Para obtener más información sobre esta vulnerabilidad y su impacto, los usuarios pueden consultar los avisos emitidos por organizaciones de seguridad y seguir las mejores prácticas para el mantenimiento del software.
Cómo elegir la solución SIEM gestionada definitiva para su equipo de seguridad -> Descargue la guía gratuita (PDF)