Vulnerabilidad en los paquetes de OpenSSH de RHEL 9 que permite la ejecución remota de código.

En el proceso de estudiar la vulnerabilidad crítica en OpenSSH identificada la semana pasada, se ha descubierto otra vulnerabilidad similar (CVE-2024-6409) que permite la ejecución remota de código sin pasar por la autenticación. La nueva vulnerabilidad no es tan peligrosa como la anterior, ya que se manifiesta tras un despojo de privilegios en el proceso hijo ejecutado por el servidor SSH. La vulnerabilidad está presente en los paquetes openssh del sistema operativo Red Hat Enterprise Linux 9, basados en la versión de OpenSSH 8.7 publicada en 2021. El problema también afecta a los paquetes para Fedora Linux 36 y 37, que se basan en las versiones OpenSSH 8.7 y 8.8.

En esencia, la vulnerabilidad es análoga al problema anterior y también es causada por una condición de carrera en el manejador de interrupciones SIGALRM, que ocurre debido a la ejecución de funciones no diseñadas para ser llamadas en modo asíncrono desde manejadores de señales. El manejador se activa cuando se produce un tiempo de espera, definido a través del parámetro LoginGraceTime, y interrumpe la ejecución actual del código. El uso de funciones en el manejador de interrupciones que no están diseñadas para ejecución asíncrona, las cuales aplican asignación dinámica de memoria, como syslog(), puede conducir a la corrupción de las estructuras internas de malloc cuando se activa SIGALRM mientras se ejecuta cierto código.

La nueva vulnerabilidad se distingue por que la condición de carrera surge a partir de la llamada en el manejador de señales grace_alarm_handler() a la función cleanup_exit(). En la base de código principal de OpenSSH, esta función puede ser utilizada en código que se ejecuta de forma asíncrona, pero en los paquetes para RHEL 9 y Fedora se aplicó un parche adicional que añade en cleanup_exit() una llamada a una función para generar eventos de auditoría, diseñada para su uso en manejadores de señales.

Este parche se utilizó en RHEL 9 y distribuciones derivadas en paquetes basados en OpenSSH 8.7p1. En las versiones actuales de Fedora, el problema no se presenta, ya que a partir de Fedora 38 la distribución ha migrado a una versión más nueva de OpenSSH sin modificar cleanup_exit(). A diferencia de la vulnerabilidad anterior, no se puede aplicar un método de protección de contorno para bloquear el nuevo problema, basado en el uso de la opción "-e" en sshd, que desactiva la salida del registro a través de syslog. Sin embargo, para bloquear la vulnerabilidad en sshd_config se puede establecer el parámetro "LoginGraceTime=0".

Fuente: opennet.ru

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster