O OpenSSH 10.6, uma implementação de código aberto para clientes e servidores SSH 2.0 e SFTP, foi lançado. Problemas de segurança, a maioria dos quais identificados por meio de análise de código com ferramentas de IA, foram corrigidos (identificadores CVE não atribuídos):
- Uma vulnerabilidade no SFTP permite que um arquivo seja gravado fora do diretório de destino ao acessar um servidor controlado por atacantes.
- Duas vulnerabilidades na implementação do GSSAPI no sshd foram causadas pela persistência do estado entre tentativas de autenticação. As credenciais do GSSAPI podiam persistir após uma tentativa de autenticação falha e ser usadas após uma tentativa de autenticação bem-sucedida subsequente. Os problemas se manifestam quando a configuração GSSAPIAuthentication está habilitada.
- O suporte à compressão LZ77 está desativado no sshd e no ssh devido à possibilidade de um ataque de canal lateral que permite a recuperação de conteúdo de outra sessão quando a conexão é feita por meio de uma conexão multiplexada compartilhada com a vítima. Esse ataque se aproveita do fato de que a entrada controlada pelo atacante afeta o comprimento total das mensagens criptografadas transmitidas (o LZ77 substitui strings repetidas por referências em um buffer compartilhado por todos os canais).
- O utilitário ssh proíbe o uso dos caracteres '$' e '\' em nomes de usuário inseridos na linha de comando, pois eles poderiam ser usados para executar código ao substituir nomes nas diretivas exec ProxyCommand e Match especificadas nas configurações.
- No ssh-keygen, foi corrigido o tratamento incorreto do horário de verão, que resultava em uma alteração de 1 hora na data de expiração do certificado.
- Para bloquear a criação de bombas zip no sshd e no ssh, foi adicionada uma verificação para detectar se o tamanho máximo do pacote foi excedido durante a descompactação dos dados.
- No sshd, foi resolvido um problema em que a restrição da palavra-chave "restrict" no arquivo authorized_keys era ignorada e não aplicada aos túneis (PermitTunnel).
- No sshd, a opção "none" deixou de ser analisada incorretamente dentro de blocos Match, que em algumas diretivas, como AuthorizedPrincipalsFile, era interpretada como um nome de arquivo em vez de uma indicação de que a diretiva estava desativada.
- Corrigido um bug no sshd onde os privilégios de root não eram removidos em plataformas que não suportam passagem de descritores de arquivo e exigem privilégios de root para alocar um PTY. Esse problema ocorre no QNX 6, SCO OpenServer 5 e ao compilar com a opção "--disable-fd-passing".
Alterações não relacionadas a vulnerabilidades:
- O suporte para o algoritmo criptográfico híbrido ssh-mldsa44-ed25519, resistente a ataques de força bruta em computadores quânticos, foi ativado.
- A opção WarnWeakCrypto foi implementada e ativada por padrão no arquivo sshd_config para controlar se os avisos são exibidos quando uma conexão é estabelecida usando algoritmos de acordo de chaves não resistentes a ataques quânticos.
- Os comandos ssh-keygen e ssh-add implementam uma política de verificação credProtect nas credenciais para atender aos requisitos de verificação (PIN ou biometria) antes de acessar as chaves residentes nos tokens FIDO.
- Adicionada a opção "-P" ao comando ssh-add para ignorar a entrada opcional do PIN para tokens FIDO e PKCS#11.
- No SSH, o comando ~I exibe informações sobre as versões nos sistemas local e remoto.
- No protocolo SFTP, a opção '-p' foi adicionada aos comandos mkdir/lmkdir para criar diretórios, se necessário.
- Um modo "hexdump" foi adicionado ao ssh-keygen para exportar chaves como dumps hexadecimais (por exemplo, para colar em documentação).
- Em ssh e sshd, a diretiva ChannelTimeout permite especificar tempos limite com precisão de frações de segundo.
- Adicionada a opção AgentSocketPath ao sshd para especificar o caminho para $SSH_AUTH_SOCK ao encaminhar um agente (por exemplo, user:.ssh/agent para subdiretórios em $HOME e shared:/tmp para diretórios compartilhados).
- O ssh-agent possui uma flag "-A" para especificar diretórios com sockets de agente, que permite especificar os prefixos "user:" e "shared:", como na opção AgentSocketPath.
- No sshd, a verificação da chave pública agora é separada das tentativas de autenticação. A opção "PubkeyOptions max-pk-ok:nnnn" foi adicionada para configurar o número de tentativas de verificação da chave pública (6 por padrão), após as quais a conexão será encerrada com base no limite MaxAuthTries.
- Em ssh e sshd, a opção TCPKeepAlive agora suporta o valor "all", que permite o envio de pacotes keepalive não apenas para a conexão principal, mas também para conexões encaminhadas por meio dela.
Fonte: opennet.ru
