OpenSSH 9.2 lanzado con corrección para a vulnerabilidade de pre-autenticación

Publicouse a versión de OpenSSH 9.2, unha implementación aberta dun cliente e servidor para traballar usando os protocolos SSH 2.0 e SFTP. A nova versión elimina unha vulnerabilidade que leva á dobre liberación de memoria na fase previa á autenticación. Só se ve afectada a versión de OpenSSH 9.1; o problema non aparece nas versións anteriores.

Para crear condicións para a manifestación da vulnerabilidade, abonda con cambiar o banner do cliente SSH a "SSH-2.0-FuTTYSH_9.1p1" para establecer as marcas "SSH_BUG_CURVE25519PAD" e "SSH_OLD_DHGEX", que dependen da versión do SSH. clienta. Despois de establecer estas marcas, a memoria para o búfer "options.kex_algorithms" liberase dúas veces: ao executar a función do_ssh2_kex(), que chama a compat_kex_proposal(), e ao executar a función do_authentication2(), que chama a input_userauth_request(), mm_getpwna. ), copy_set_server_options() ao longo da cadea, assemble_algorithms() e kex_assemble_names().

Considérase improbable crear un exploit que funcione para a vulnerabilidade, xa que o proceso de explotación é demasiado complicado: as bibliotecas modernas de asignación de memoria ofrecen protección contra a dobre liberación de memoria e o proceso de pre-autorización no que está presente o erro execútase con privilexios reducidos de forma illada. entorno sandbox.

Ademais da vulnerabilidade sinalada, a nova versión tamén soluciona dous problemas de seguridade máis:

  • Produciuse un erro ao procesar a configuración "PermitRemoteOpen", o que provocou que se ignorase o primeiro argumento se é diferente dos valores "calquera" e "ningunha". O problema aparece en versións máis recentes que OpenSSH 8.7 e fai que se salte a comprobación cando só se especifica un permiso.
  • Un atacante que controle o servidor DNS usado para resolver os nomes pode conseguir a substitución de caracteres especiais (por exemplo, “*”) en ficheiros known_hosts se as opcións CanonicalizeHostname e CanonicalizePermittedCNAMEs están activadas na configuración e o resolvedor do sistema non verifica a corrección de respostas do servidor DNS. O ataque considérase improbable porque os nomes devoltos deben coincidir coas condicións especificadas mediante CanonicalizePermittedCNAMEs.

Outros cambios:

  • Engadiuse unha configuración EnableEscapeCommandline a ssh_config para ssh para controlar se o procesamento do cliente da secuencia de escape "~C" que proporciona a liña de comandos está habilitado. De forma predeterminada, o manexo de "~C" agora está desactivado para usar un illamento máis estricto da caixa de probas, o que pode romper os sistemas que usan "~C" para o reenvío de portos en tempo de execución.
  • A directiva ChannelTimeout engadiuse a sshd_config para que sshd estableza o tempo de espera de inactividade da canle (as canles nas que non se rexistra tráfico durante o tempo especificado na directiva pecharanse automaticamente). Pódense establecer diferentes tempos de espera para a sesión, X11, axente e redirección de tráfico.
  • A directiva UnusedConnectionTimeout engadiuse a sshd_config para sshd, o que lle permite establecer un tempo de espera para finalizar as conexións de clientes que estiveron sen canles activas durante un tempo determinado.
  • A opción "-V" engadiuse a sshd para mostrar a versión, de xeito similar á opción similar no cliente ssh.
  • Engadiuse a liña "Host" á saída de "ssh -G", que reflicte o valor do argumento do nome de host.
  • A opción "-X" engadiuse a scp e sftp para controlar os parámetros do protocolo SFTP, como o tamaño do búfer de copia e o número de solicitudes pendentes.
  • ssh-keyscan permite a exploración de intervalos completos de enderezos CIDR, por exemplo "ssh-keyscan 192.168.0.0/24".

Fonte: opennet.ru

Engadir un comentario