O lançamento de a nova versão da implementação aberta de cliente e servidor para trabalhar com os protocolos SSH 2.0 e SFTP, "OpenSSH 9.2".
A nova versão corrige uma vulnerabilidade, o que leva à dupla liberação de uma área de memória na etapa de pré-autenticação. 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 de trabalho para a vulnerabilidade, já que 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 privilégios reduzidos em uma caixa de proteção.
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.
O que há de novo no OpenSSH 9.2
Das mudanças que foram feitas no OpenSSH 9.2 destaca-se que adicionou uma configuraçãong 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 estiver 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
tem adicionada diretiva ChannelTimeout para sshd_config para sshd definir o tempo limite de inatividade do canal (Os canais nos quais nenhum tráfego foi detectado pelo tempo especificado na política serão fechados automaticamente.) Sessão, X11, agente e tráfego de redirecionamento podem ter tempos limite diferentes.
Do outras mudanças:
- 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”.
Finalmente se você estiver interessado em saber mais sobre isso sobre esta nova versão, você pode verificar os detalhes indo para o seguinte link.
Como instalar o OpenSSH 9.2 no Linux?
Para aqueles que estão interessados em poder instalar esta nova versão do OpenSSH em seus sistemas, por enquanto eles podem fazer isso baixando o código-fonte deste e realizando 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 do Linux. Para obter o código-fonte, você pode fazer a partir do seguinte link.
Feito o download, agora vamos descompactar o pacote com o seguinte comando:
tar -xvf openssh-9.2.tar.gz
Entramos no diretório criado:
cd openssh-9.2
Y podemos compilar com os seguintes comandos:
./configure --prefix=/opt --sysconfdir=/etc/ssh make make install
"Com pressa?"…
Bem, eu os tiro, hehe.
Obrigado por assistir.