
Hace pocos días, Damien Miller (uno de los desarrolladores de OpenSSH), dio a conocer, mediante las listas de correo, el lanzamiento de la versión de mantenimiento «OpenSSH 9.9p2» que corrige dos vulnerabilidades críticas descubiertas por Qualys, las cuales podían ser explotadas para realizar ataques de tipo Man-in-the-Middle (MITM).
Se menciona que estas fallas permitían a un atacante interceptar conexiones SSH y engañar al cliente para que aceptara la clave de un servidor malicioso en lugar de la clave legítima del servidor de destino.
CVE-2025-26465: Omisión de la verificación de claves en SSH
La primera de las vulnerabilidades que fue solucionada en el lanzamiento de esta versión correctiva, es la CVE-2025-26465. Esta vulnerabilidad se debe a un error lógico en la utilidad ssh, que permite a un atacante eludir la verificación de la clave del servidor y ejecutar un ataque MITM con éxito.
Cuando un cliente intenta conectarse a un servidor SSH, un atacante puede redirigir el tráfico a un servidor falso y hacer que el cliente acepte la clave incorrecta sin advertencias, creyendo que está conectado al servidor legítimo.
Además de ello, esta vulnerabilidad:
- Ha estado presente en OpenSSH desde la versión 6.8p1 (diciembre de 2014).
- Se activa cuando la opción VerifyHostKeyDNS está habilitada.
- En la configuración base de OpenSSH, esta opción está deshabilitada por defecto, pero en FreeBSD estuvo habilitada hasta marzo de 2023.
En cuanto a las causas que ocasionan este fallo, se menciona que se debe a que la función verify_host_key_callback() llama a verify_host_key(), pero solo verifica si el código de error devuelto es -1, ignorando otros códigos de error como -2. Cuando verify_host_key() devuelve -2 cuando hay insuficiente memoria, pero debido a la omisión del código de error, el sistema asume erróneamente que la clave de host ha sido verificada correctamente.
Con ello, un atacante puede explotar esta falla creando un servidor SSH falso que envíe una clave de host de gran tamaño (256 KB), lo que provoca un consumo excesivo de memoria en el cliente y activa la condición de error no manejada.
CVE-2025-26466: fuga de memoria y consumo excesivo de CPU en SSH
La segunda vulnerabilidad que fue corregida, es la CVE-2025-26466 y esta vulnerabilidad afecta tanto al cliente ssh como al servidor sshd, ya que permite agotar la memoria del proceso y generar una alta carga de CPU al enviar repetidamente paquetes SSH2_MSG_PING.
El gran impacto de esta vulnerabilidad radica en que puede ser explotada sin autenticación y afecta a OpenSSH desde la versión 9.5p1 (agosto de 2023). Además de ello permite que un atacante consuma recursos del sistema, degradando su rendimiento e incluso causando una denegación de servicio (DoS).
Sobre las causas que ocasionan este fallo, se menciona que se debe a que cada paquete SSH2_MSG_PING entrante de 16 bytes provoca la asignación de un búfer de 256 bytes en memoria. Este búfer no se libera hasta que se completa el acuerdo de clave, lo que genera una fuga de memoria cuando se envían múltiples paquetes PING.
Mitigación y solución
Como solución alternativa, se recomienda configurar restricciones en sshd_config usando las siguientes directivas:
- LoginGraceTime: esto limita el tiempo de espera para autenticación.
- MaxStartups: restringe la cantidad de conexiones no autenticadas.
- PerSourcePenalties: aplica penalizaciones a clientes que generan múltiples intentos de conexión.
Y en cuanto a las soluciones, la primera y la más recomendable es actualizar a OpenSSH a la versión lanzada, la «9.9p2» lo antes posible para corregir estas vulnerabilidades. Pero si la actualización inmediata no es viable, se deben aplicar las medidas de mitigación mencionadas anteriormente. Adicional a ello, se recomienda deshabilitar VerifyHostKeyDNS, a menos que se utilicen mecanismos de verificación DNSSEC confiables.
Si estás interesado en poder conocer más al respecto, puedes consultar los detalles en el siguiente enlace.
¿Como instalar OpenSSH en Linux?
Para quienes estén interesados en poder instalar esta nueva versión de OpenSSH en sus sistemas, de momento podrán hacerlo descargando el código fuente de este y realizando la compilación en sus equipos.
Esto es debido a que la nueva versión aún no se ha incluido dentro de los repositorios de las principales distribuciones de Linux. Para obtener el código fuente, puedes hacer desde el siguiente enlace.
Hecha la descarga, ahora vamos a descomprimir el paquete con el siguiente comando:
tar -xvf openssh-9.9p2.tar.gz
Entramos al directorio creado:
cd openssh-9.9p2
Y podremos realizar la compilación con los siguientes comandos:
./configure --prefix=/opt --sysconfdir=/etc/ssh
make
make install
Continúar leyendo...