El popular y versátil cliente,
típicamente utilizado para conexiones SSH, ha hecho pública una actualización
de seguridad con el objetivo de parchear una serie de errores graves que
permitían comprometer una máquina que contuviese este software instalado.
Tras casi un año y medio desde que se
lanzara la última versión y después de haber notificado en su propia web que
todas las versiones anteriores del cliente eran vulnerables, los
desarrolladores han decidido liberar la versión 0.71 para los clientes Unix y
Windows, con la intención de solventar estos problemas.
A continuación os listamos las
vulnerabilidades que han sido corregidas en esta actualización, junto con la
traducción – en cursiva – de la nota publicada en su web para cada una de las
vulnerabilidades.
Suplantación del terminal de
autenticación. Dado que el cliente PuTTY no tiene mecanismos adecuados para
discernir si una determinada salida de texto del terminal es legítima y
genuina, un servidor malicioso podría explotar esta particularidad de la
interfaz gráfica para generar un terminal de autenticación falso e inducir a la
víctima a introducir en él sus credenciales.
“Si el servidor hubiese adquirido una
copia de tu clave encriptada – por ejemplo al haberla dejado copiada en algún
lugar, pensando que al estar encriptada, era seguro hacerlo – esto podría
haberle dado acceso a tu clave privada”.
Ejecución de código vía CHM hijacking.
Cuando un usuario ejecuta la ayuda online en el marco de las herramientas de
interfaz gráfica de PuTTY, el software intenta encontrar su propio archivo de
ayuda al mismo tiempo que su propio ejecutable. Este comportamiento es,
precisamente, el que permitiría a un hipotético atacante engañar a la víctima
para ejecutar código malicioso en el cliente mediante el secuestro del archivo
CHM.
“Si PuTTY se estuviera ejecutando
desde un directorio en el cual un código externo al propio programa fuese capaz
de escribir archivos, esto abriría la posibilidad de infiltrar en dicho
directorio un archivo putty.chm, haciendo creer a PuTTY que ese archivo es
legítimo, llamándolo a htmlhelp.exe.”
Buffer Overflow en PuTTY Tools (Unix).
Según el aviso en la web, si un servidor llevase a cabo demasiadas
redirecciones de puertos en entornos Unix, PuTTY no podría comprobar los
límites del archivo generado durante la monitorización de ciertos logs, lo que
provocaría un buffer overflow.
“No sabemos si fue posible una explotación
remota pero, como mínimo, sí que habría sido posible disparar -esta
vulnerabilidad – por un servidor SSH malicioso, si cualquiera de las opciones
que permiten al servidor abrir canales remoto-a-local, redireccionamiento de
agente o redireccionamiento X11, se encontraran habilitadas.”
Reutilización de números criptográfico
pseudoaleatorios. El error reside en el modo en que los números criptográficos
pseudoaleatorios son generados en PuTTY, que ocasionalmente parece utilizar dos
veces el mismo lote de números pseudoaleatorios.
“El error ocurría debido a un buffer
overflow de un sólo byte en el código encargado de la generación de números
pseudoaleatorios. Si se inyectó entropía a partir de una fuente externa,
exactamente cuando el índice de la posición actual estaba apuntando al extremo
final del espacio destinado al almacenamiento de números pseudoaleatorios, se
podría haber sobreescrito este espacio por un sólo byte, sustituyendo al byte
más bajo de la posición del índice mismo.”
Vulnerabilidad de tipo Integer
Overflow. Todas las versiones anteriores de PuTTY adolecen de una
vulnerabilidad de tipo Integer Overflow debido a una falta de comprobación del
tamaño de la clave, la cual tiene lugar durante el intercambio de claves RSA.
Un servidor remoto puede disparar esta vulnerabilidad enviando una clave RSA
suficientemente corta, conduciendo a un Integer Overflow y a una sobreescritura
de la memoria.
“Los desarrolladores de PuTTY no están
seguros de si esta vulnerabilidad puede ser explotada para ganar el control del
cliente, pero dado que el incidente tiene lugar durante el intercambio de
claves y, por ende, ocurre antes de cualquier comprobación por parte del
cliente, el overflow podría inducir a un ataque MiTM, incluso aunque el intruso
no conociera la clave correcta.
De modo que, aunque consideres seguro
el servidor al que te estás conectando, no estás a salvo.”
Denegación de Servicio del terminal.
Las tres últimas vulnerabilidades abusan de la terminal del cliente, mediante
el envío de diferentes salidas de texto, que podrían tumbar el servicio.
En primer lugar, los servidores pueden
enviar una extensa cadena de caracteres Unicode al terminal del cliente, lo que
conduce a un ataque de dengación de servicio al obligar al sistema a alojar en
memoria cantidades potencialmente ilimitadas de datos.
El segundo ataque de denegación de
servicio puede ser disparado mediante el envío combinado de caracteres, textos
con un ancho el doble de lo permitido, un número impar de columnas de terminal
o salidas de GTK hacia la terminal del cliente.
Por último, mediante el envío al
cliente de caracteres con un ancho de dos, utilizado por caracteres chinos,
japoneses y coreanos, puede forzarse la disrupción del emulador de la terminal
de PuTTY.
Desde Hispasec recomendamos que, si
estás utilizando PuTTY, actualices cuanto antes la versión instalada.
Más
información
Fuente: Hispasec