Lançamento do OpenSSH 9.2 com correção de vulnerabilidade que se manifesta antes da autenticação

Foi publicado o lançamento do OpenSSH 9.2, uma implementação aberta de cliente e servidor para funcionamento com os protocolos SSH 2.0 e SFTP. Na nova versão, uma vulnerabilidade que leva à liberação dupla da memória na fase anterior à autenticação foi corrigida. Apenas a versão OpenSSH 9.1 é vulnerável; em versões anteriores, o problema não se manifesta.

Para criar condições para a manifestação da vulnerabilidade, basta alterar o banner do cliente SSH para "SSH-2.0-FuTTYSH_9.1p1" para acionar os flags "SSH_BUG_CURVE25519PAD" e "SSH_OLD_DHGEX", que dependem da versão do cliente SSH. Após a ativação desses flags, a memória para o buffer "options.kex_algorithms" é liberada duas vezes - na execução da função do_ssh2_kex(), que chama compat_kex_proposal(), e na execução da função do_authentication2(), que chama em cadeia input_userauth_request(), mm_getpwnamallow(), copy_set_server_options(), assemble_algorithms() e kex_assemble_names().

A criação de um exploit funcional para a vulnerabilidade é considerada improvável, pois o processo de exploração é muito complicado - bibliotecas modernas de gerenciamento de memória oferecem proteção contra liberação dupla de memória, e o processo pré-autenticação, onde o erro ocorre, é executado com privilégios reduzidos em um ambiente isolado de sandbox.

Além da vulnerabilidade mencionada, duas outras questões de segurança também foram corrigidas na nova versão:

  • Um erro no tratamento da configuração "PermitRemoteOpen", que leva à ignorância do primeiro argumento se este for diferente dos valores "any" e "none". O problema se manifesta em versões posteriores ao OpenSSH 8.7 e resulta na omissão da verificação ao especificar apenas uma autorização.
  • Um atacante que controla o servidor DNS usado para resolver nomes pode conseguir inserir caracteres especiais (por exemplo, "*") em arquivos known_hosts, se as opções CanonicalizeHostname e CanonicalizePermittedCNAMEs estiverem habilitadas na configuração e o resolver do sistema não verificar a exatidão das respostas do servidor DNS. A realização do ataque é considerada improvável, pois os nomes retornados devem atender às condições definidas através de CanonicalizePermittedCNAMEs.

Outras mudanças:

  • No ssh_config para ssh foi adicionada a configuração EnableEscapeCommandline, que controla a ativação do processamento no lado do cliente da sequência de escape «~C», fornecendo uma linha de comando. Por padrão, o processamento de «~C» agora está desativado para usar uma isolamento de sandbox mais rigorosa, o que pode potencialmente causar falhas em sistemas onde «~C» é usado para redirecionar portas durante a operação.
  • No sshd_config para sshd foi adicionada a diretiva ChannelTimeout para definir o timeout de inatividade do canal (canais nos quais não houver tráfego registrado pelo tempo especificado na diretiva serão fechados automaticamente). Diferentes timeouts podem ser definidos para sessões, X11, agente e redirecionamento de tráfego.
  • No sshd_config para sshd foi adicionada a diretiva UnusedConnectionTimeout, que permite definir um timeout para finalizar conexões de clientes que permaneçam em um determinado tempo sem canais ativos.
  • No sshd foi adicionada a opção «-V» para exibir a versão, similar a uma opção correspondente no cliente ssh.
  • Na saída «ssh -G» foi adicionada a linha «Host», refletindo o valor do argumento com o nome do host.
  • No scp e sftp foi adicionada a opção «-X» para gerenciar parâmetros do protocolo SFTP, como o tamanho do buffer de cópia e o número de solicitações aguardando conclusão.
  • No ssh-keyscan foi permitido escanear intervalos CIDR completos, por exemplo, «ssh-keyscan 192.168.0.0/24».

Fonte: opennet.ru

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster