¿Cómo ocurrió un error como CVE-2018-10933 (bypass de autenticación libssh)?

2

¿Cómo surgió un error como la reciente vulnerabilidad libssh llegado a existir? ¿Cuál es exactamente la naturaleza y la causa raíz del error?

De sitio web de libssh :

  

las versiones 0.6 y posteriores de libssh tienen una vulnerabilidad de omisión de autenticación en el código del servidor. Al presentar al servidor un mensaje SSH2_MSG_USERAUTH_SUCCESS en lugar del mensaje SSH2_MSG_USERAUTH_REQUEST que el servidor esperaría para iniciar la autenticación, el atacante podría autenticar correctamente (sic) sin ninguna credencial.

Para mí, esto solo me plantea más preguntas: ¿por qué el servidor confía algo del cliente? ¿Por qué SSH2_MSG_USERAUTH_SUCCESS existe en absoluto? ¿Es parte del protocolo ssh?

    
pregunta jamesdlin 17.10.2018 - 22:07
fuente

1 respuesta

6

El problema subyacente que causó este error y muchos errores similares es una suposición falsa. es decir, que un determinado mensaje (SSH2_MSG_USERAUTH_SUCCESS) solo se enviaría por un servidor a un cliente ... libssh no consideró que un cliente malintencionado pudiera enviar este mensaje a a servidor. Sobre la base de este supuesto fallido, la biblioteca tenía una sola máquina de estado (compartida por las implementaciones del cliente y el servidor) que hace clic en (como en la conexión aceptada) cuando llega este mensaje. En general, las suposiciones falsas crean agujeros de seguridad.

    
respondido por el DarkMatter 17.10.2018 - 22:35
fuente

Lea otras preguntas en las etiquetas