Kingcope ha vuelto a hacer públicos todos los detalles de un grave fallo
de seguridad en OpenSSH de FreeBSD 4, que permite ejecución remota de
código. Ha creado un exploit capaz de aprovechar el fallo, y que
devuelve una shell al equipo remoto sin necesidad de autenticación. El
fallo se encuentra en auth2-pam-freebsd.c, un archivo de hace siete
años.
El problema es grave, puesto que permite a un atacante que pueda acceder
al SSH de una máquina FreeBSD, ejecutar código como root sin necesidad
de autenticarse. El fallo se da en, al menos en FreeBSD 4.9 y 4.11,
puesto que estas versiones vienen con OpenSSH 3.5p1 por defecto.
Actualmente FreeBSD mantiene solo dos ramas, la 7 y la 8. La rama 4 se
descontinuó en 2007 y el fichero problemático desapareció de FreeBSD a
partir de la versión 5.2.1.
El problema está en la función pam_thread, a la hora de procesar nombres
de usuario muy largos. Tanto SSH versión 1 como SSH versión 2. En
versiones más modernas de FreeBSD 5.2.1, ni siquiera existe el archivo
afectado auth2-pam-freebsd.c. Kingcope no ha podido determinar aún si el
problema está en este OpenSSH de FreeBSD o en la propia librería PAM del
sistema operativo.
Durante las pruebas, Kingcope comprobó que si lanzaba el demonio SSH
desde consola como root, y proporcionaba un nombre de usuario de más
de 100 caracteres de longitud, el demonio moría y se sobrescribía el
registro EIP, con lo que se puede llegar a controlar por completo el
flujo de instrucciones.
Kingcope (Nikolaos Rangos) suele descubrir importantes vulnerabilidades
en FreeBSD y otro software popular. A finales de 2009 encontró un
problema de elevación de privilegios FreeBSD. En septiembre de ese mismo
año, publicó un exploit funcional que permitía a un atacante ejecutar
código con permisos de SYSTEM en un servidor IIS 5.x (Internet
Information Services) siempre que tuviera el FTP habilitado y accesible.
En la versión 6.x, el exploit sólo permitía provocar una denegación de
servicio. También en mayo de 2009, descubrió un grave fallo en WebDAV
de IIS.