¿Los sistemas operativos como Debian, Ubuntu confían en libssh para SSH y si lo hacen, significa que cada servidor que expone SSH es vulnerable a este ataque?
Los problemas pueden surgir con las aplicaciones que utilizan libssh. Como se indica en el sitio web libssh : "libssh es una biblioteca de C que le permite escribir un programa que usa el SSH protocolo." Por lo tanto, las aplicaciones de usuario que hacen uso de la biblioteca libssh podrían ser vulnerables, no el sistema operativo en sí. Aquí hay algunas aplicaciones que utilizan libssh (del sitio web libssh ):
- KDE usa libssh para las transferencias de archivos sftp
- GitHub implementó su servidor git ssh con libssh
- X2Go es una solución de escritorio remoto para Linux
También, ¿OpenSSH depende de libssh o son dos implementaciones separadas?
No, no lo hace. Ellos están separados.
Actualización 2018-10-18: una publicación de blog escrita por el descubridor de vulnerabilidades e incluye una explicación detallada y un código de prueba de concepto (a través de Paramiko) es ya está disponible .
La publicación del blog vinculado a explica que la vulnerabilidad se debe al hecho de que el código en la tabla de despacho de procesamiento de paquetes (en libssh \ src \ packet.c) ejecuta manejadores para SSH2_MSG_USERAUTH_SUCCESS incluso para servidores (incluso si tal mensaje es solo Se supone que debe ser procesado por los clientes). La investigación adicional del código muestra que tal procesamiento erróneo del mensaje en libssh \ src \ auth.c hace que el servidor cambie el estado de la sesión para autenticarse.
También está disponible un código detallado de prueba de concepto, que muestra que se puede actualizar Python Paramiko para enviar el mensaje SSH2_MSG_USERAUTH_SUCCESS en lugar de un mensaje SSH2_MSG_USERAUTH_REQUEST y aprovechar la vulnerabilidad.
Sin embargo, la publicación del blog también establece que:
"No todos los servidores libSSH serán necesariamente vulnerables a la omisión de autenticación; ya que la omisión de autenticación configura la máquina de estado libSSH interna para que se autentique sin ofrecer a los devoluciones de llamada de autenticación registrados la oportunidad de ejecutar, los servidores desarrollados con libSSH mantienen una sesión personalizada adicional el estado puede dejar de funcionar correctamente si un usuario se autentica sin que se cree este estado ".