Vulnerabilidad de ejecución remota de código StrongSwan IPsec

Ya está disponible strongSwan 5.9.10, un paquete gratuito para crear conexiones VPN basadas en el protocolo IPSec utilizado en Linux, Android, FreeBSD y macOS. La nueva versión elimina una vulnerabilidad peligrosa (CVE-2023-26463) que puede usarse para eludir la autenticación, pero que también podría conducir a la ejecución de código de atacante en el lado del servidor o del cliente. El problema ocurre al validar certificados especialmente diseñados en métodos de autenticación EAP (Protocolo de autenticación extensible) basado en TLS.

La vulnerabilidad se debe a que el controlador TLS acepta incorrectamente claves públicas del certificado de un par, considerándolas confiables incluso si el certificado no se puede verificar con éxito. Específicamente, al llamar a la función tls_find_public_key(), se utiliza una selección basada en el tipo de clave pública para determinar qué certificados son confiables. El problema es que la variable utilizada para determinar el tipo de clave para la operación de búsqueda se establece de todos modos, incluso si el certificado no es confiable.

Además, al manipular la clave, puede reducir el contador de referencias (si el certificado no es confiable, la referencia al objeto se libera después de determinar el tipo de clave) y liberar memoria para el objeto que aún está en uso con la clave. Esta falla no excluye la creación de exploits para filtrar información de la memoria y ejecutar código personalizado.

El ataque al servidor se realiza mediante el envío por parte del cliente de un certificado autofirmado para autenticar al cliente mediante los métodos EAP-TLS, EAP-TTLS, EAP-PEAP y EAP-TNC. Se puede llevar a cabo un ataque al cliente a través del servidor que devuelve un certificado especialmente diseñado. La vulnerabilidad aparece en las versiones 5.9.8 y 5.9.9 de strongSwan. La publicación de actualizaciones de paquetes en distribuciones se puede rastrear en las páginas: Debian, Ubuntu, Gentoo, RHEL, SUSE, Arch, FreeBSD, NetBSD.

Fuente: opennet.ru

Añadir un comentario