OpenSSH 9.2 lançado com correções e algumas melhorias

E foi lançado o OpenSSH 9.2 com correções e algumas melhorias, e muito mais. Confira as novidades e veja com instalar no Linux.

O OpenSSH é o mais importante conjunto de utilitários de rede relacionado à segurança que provém a criptografia em sessões de comunicações em uma rede de computadores usando o protocolo SSH.

Agora, o OpenSSH 9.2 está disponível como a versão mais recente dessa implementação SSH de código aberto amplamente usada.

Novidades do OpenSSH 9.2

OpenSSH 9.2 lançado com correções e algumas melhorias
OpenSSH 9.2 lançado com correções e algumas melhorias

A nova versão corrige uma vulnerabilidade, que leva à dupla liberação de uma área de memória na etapa de pré-autenticação. A vulnerabilidade afeta apenas o lançamento do OpenSSH 9.1, nas versões anteriores o problema não aparece.

Para criar condições para a manifestação de uma vulnerabilidade, basta alterar o banner do cliente SSH para “SSH-2.0-FuTTYSH_9.1p1” para conseguir a configuração dos sinalizadores “SSH_BUG_CURVE25519PAD” e “SSH_OLD_DHGEX”, dependendo da versão do cliente SSH.

Depois de definir esses sinalizadores, a memória para o buffer “options.kex_algorithms” é liberada duas vezes: executando a função do_ssh2_kex(), que chama compat_kex_proposal(), e executando a função do_authentication2(), que chama input_userauth_request( ), mm_getpwnamallow( ), copy_set_server_options() ao longo da cadeia, ensemble_algorithms() e kex_assemble_names().

É considerado improvável criar uma exploração funcional para a vulnerabilidade, pois o processo de exploração é muito complicado: bibliotecas modernas de alocação de memória fornecem proteção contra liberação dupla de memória e o processo de pré-autenticação, no qual há um bug, é executado com redução privilégios em uma caixa de areia.

Além da vulnerabilidade mencionada, a nova versão também corrige mais dois problemas de segurança:

  • Ocorreu um erro durante o processamento da configuração “PermitRemoteOpen”, que fazia com que o primeiro argumento fosse ignorado caso fosse diferente dos valores “any” e “none”. O problema aparece em versões posteriores ao OpenSSH 8.7 e faz com que a verificação seja ignorada quando apenas uma permissão é especificada.
  • Um invasor controlando o servidor DNS usado para resolver nomes pode obter a substituição de caracteres especiais (por exemplo, “*”) em arquivos de hosts conhecidos se as opções CanonicalizeHostname e CanonicalizePermittedCNAMEs estiverem habilitadas na configuração e o resolvedor não verificar a correção do DNS respostas do servidor. É considerado improvável que o ataque seja bem-sucedido, pois os nomes retornados devem corresponder às condições especificadas por meio de CanonicalizePermittedCNAME.

Mudanças notáveis ​​no OpenSSH 9.2 adicionaram uma configuração EnableEscapeCommandline a ssh_config para controlar se o processamento do lado do cliente da sequência de escape “~C” sempre que a linha de comando é habilitada.

Por padrão, o processamento “~C” agora está desabilitado para permitir um sandbox mais rígido, o que pode interromper os sistemas que usam “~C” para encaminhamento de porta em tempo de execução

Adicionada a diretiva ChannelTimeout a sshd_config para que sshd defina o tempo limite ocioso do canal (canais nos quais nenhum tráfego foi detectado pelo tempo especificado na diretiva serão fechados automaticamente).

O tráfico da sessão, X11, agente e redirecionamento podem ter tempos limite diferentes.

Das outras alterações que foram feitas nesta nova versão:

  • Adicionada uma diretiva UnusedConnectionTimeout a sshd_config para sshd, que permite definir um tempo limite para encerrar conexões de clientes que não tiveram canais ativos por um determinado período de tempo.
  • Adicionada a opção “-V” ao sshd para exibir uma versão semelhante à opção do cliente ssh.
  • Adicionada a string “host” à saída de “ssh -G” para refletir o valor do argumento hostname.
  • Adicionada a opção “-X” para scp e sftp para controlar parâmetros SFTP, como tamanho do buffer de cópia e número de solicitações pendentes.
  • O ssh-keyscan permite verificar intervalos inteiros de endereços CIDR, por exemplo, “ssh-keyscan 192.168.0.0/24”.

Para saber mais sobre essa versão do OpenSSH, acesse a nota de lançamento.

Como instalar ou atualizar o OpenSSH

Para aqueles que estão interessados ​​em poder instalar esta nova versão do OpenSSH em seus sistemas, no momento eles podem fazer isso baixando o código-fonte e fazendo a compilação em seus computadores.

Isso ocorre porque a nova versão ainda não foi incluída nos repositórios das principais distribuições Linux. Mas possivelmente, em breve estará disponível.

Portanto, se você quer instalar a versão mais recente do OpenSSH nas principais distribuições Linux, faça o seguinte:

Passo 1. Abra um terminal com privilégios de administrador (root) ou abra um terminal como usuário comum e use o ‘sudo‘ antes dos comandos a seguir;
Passo 2. Baixe o código fonte do programa com esse comando;

wget https://cloudflare.cdn.openbsd.org/pub/OpenBSD/OpenSSH/openssh-9.2.tar.gz -O openssh.tar.gz

Passo 3. Quando terminar o download, descompacte o arquivo baixado, usando esse comando;

tar -xvf openssh.tar.gz

Passo 4. Acesse a pasta criada durante a descompactação;

cd openssh-*/

Passo 5. Use o comando abaixo para prepara o código fonte para ser compilado;

./configure --prefix=/opt --sysconfdir=/etc/ssh

Passo 6. Em seguida, use esse comando para compilar o código fonte;

make

Passo 7. Por fim, use o comando abaixo para instalar o programa no seu sistema.

make install

Pronto! O OpenSSH está instalado.

Se depois você precisar desinstalar, em um terminal (com privilégios de administrador ou seguido de ‘sudo‘), acesse novamente a pasta criada ao descompactar e use o comando abaixo;

make uninstall
Sobre o Edivaldo Brito

Edivaldo Brito é analista de sistemas, gestor de TI, blogueiro e também um grande fã de sistemas operacionais, banco de dados, software livre, redes, programação, dispositivos móveis e tudo mais que envolve tecnologia.