regreSSHion CVE-2024-6387 (Critica)


Una nueva vulnerabilidad fue descubierta por Qualys Threat Research Unit en OpenSSH´s server (ssh) en sistemas Linux basados en GNU C Library (glibc), dicha vulnerabilidad denominada regreSSHion (CVE-2024-6387) con una puntuación CVSS de 8.1 permite ejecución de código arbitrario sin autenticarse haciendo uso de la configuración default de autenticación.[1][3]
 
RegreSSHion, denominada así debido a que es una regresión de una vulnerabilidad de hace tiempo más específicamente la CVE-2006-5051. RegreSShion se puede explotar cuando un usuario falla al autenticarse dentro del periodo LoginGraceTime.

Cuando se alcanza el tiempo de espera un controlador SIGALRM de sshd es mandado a llamar, dicho controlador ejecuta a varias funciones las cuales no son seguras para llamar desde un controlador de señales haciendo posible una condición de carrera la cual supone un riesgo significativo para los sistemas que ejecutan la configuración predeterminada. 

De ser explotada, esta vulnerabilidad permite ejecutar código arbitrario con los privilegios mas altos resultando en una toma de control completa del sistema, instalación de malware, manipulación de datos y creación de puertas traseras. Aunado a esto, obteniendo acceso root permitiría a los atacantes eludir mecanismos de seguridad críticos [1]

En resumen, para explotar la vulnerabilidad el atacante inicia varias conexiones en el servidor OpenSSH, se activa de manera repetitiva el LoginGraceTime sin completar la autenticación haciendo que se dispare la señal SGIALRM. La explotación requiere que se interrumpa el controlador de señales del servidor en un momento especifico en el cual se estén ejecutando operaciones que no son seguras para señales asíncronas. El atacante envía entradas diseñadas específicamente para que manipulen el diseño de la memoria del servidor, llevando así la corrupción del montón. [1]

Cuando el atacante manipula la memoria del servidor, el atacante crea un estado incoherente en el montón mediante la activación de la señal SIGALRM durante las funciones de asignar o desasignar la memoria. Explotar esta vulnerabilidad requiere unos 10.000 intentos de media con los parámetros siguientes:

  • MaxStartups 10
  • LoginGraceTime 600
Con una media de 1 semana se puede obtener acceso remoto a la root shell y de 1 a 2 días para versiones en las que la configuración default del LoginGraceTime es de 120 segundos con los parametros antes mencionados. [1][2]

Se elaboro una PoC en github que muestra los pasos a seguir de un atacante intentando explotar la vulnerabilidad [1]

Imagen del código de la PoC de GitHub [1]

 

Versiones Afectadas

  • OpenSSH < 4.4p1: Vulnerable a la condición de carrera a menos que se corrija para CVE-2006-5051 o CVE-2008-4109.
  • 4.4p1 ≤ OpenSSH < 8.5p1: Seguro debido a la presencia de .#ifdef DO_LOG_SAFE_IN_SIGHAND sigdie(), lo que hizo que la llamada _exit(1) fuera segura
  • 8.5p1 ≤ OpenSSH < 9.8p1: Vulnerable de nuevo debido a la eliminación de la directiva. #ifdef DO_LOG_SAFE_IN_SIGHAND

Recomendaciones

  • Aplicar parches disponibles para openSSH
  • Actualizar la versión de OpenSSH a la última versión siendo esta la 9.8
  • Establecer controles de acceso SSH basados en la red para minimizar el riesgo de ataque
  • Establecer la configuración de LoginGraceTime = 0, esta medida puede ser perjudicial debido a que se expone con más facilidad a ataques DoS por lo que solo se recomienda para la red interna.
  • Auditar herramientas de acceso remoto. (NIST CSF, 2024)
  • Revisar logs para de ejecución de software de acceso remoto. (NIST CSF, 2024)
  • Limitar estrictamente el uso de los protocolos SMB y RDP.
  • Realizar auditorías de seguridad. (NIST CSF, 2024)
  • Deshabilitar los servicios y procesos no requeridos para reducir los vectores de ataque. (NIST CSF, 2024)
  • Tener filtros de correo electrónico y spam.
  • Concientizar a los empleados sobre los métodos de Phishing e Ingeniería social.
  • Realizar copias de seguridad, respaldos o back-ups constantemente.
  • Mantener los respaldos desconectados de la red de la organización, verificando constantemente la confidencialidad, integridad y disponibilidad de estos.
  • Revisar continuamente los privilegios de los usuarios.
  • Tener una solución EDR robusta configurada adecuadamente basada en las mejores prácticas (de acuerdo con documentación de fabricante).
  • Habilitar la autenticación multifactor.

Referencias

  1. Schendel, A. (2024, Julio 1). regreSSHion: Vulnerabilidad RCE en el servidor OpenSSH (CVE-2024-6387) recuperado el 2 de Julio de 2024 en: regreSSHion: Vulnerabilidad RCE en OpenSSH (CVE-2024-6387) (armosec.io)
  2. Jogi, B. (2024, Julio 1) regreSSHion: Remote Unauthenticated Code Execution Vulnerability in OpenSSH server recuperado el 2 de Julio de 2024 de: regreSSHion: Remote Unauthenticated Code Execution Vulnerability in OpenSSH server | Qualys Security Blog
  3. NIST CFS. (2024, Julio 1) CVE-2024-6387 Detail recuperado el 2 de Julio de 2024 de: NVD - CVE-2024-6387 (nist.gov)

El nombre es requerido.
El email es requerido.
El email no es válido.
El comentario es requerido.
El captcha es requerido.



Comentarios