Foi lançado o OpenSSH 10.6, uma implementação aberta de cliente e servidor para trabalhar com os protocolos SSH 2.0 e SFTP. Foram corrigidos problemas de segurança, a maioria deles identificados por meio de análise de código utilizando ferramentas de IA (identificadores CVE não designados):
- Uma vulnerabilidade no sftp, permitindo a gravação de arquivos fora do diretório de destino ao acessar um servidor controlado por atacantes.
- Duas vulnerabilidades na implementação do GSSAPI no sshd, causadas pela manutenção de estado entre diferentes tentativas de autenticação. Credenciais GSSAPI poderiam ser mantidas após uma tentativa de autenticação malsucedida e reutilizadas após uma tentativa subsequente bem-sucedida. Os problemas aparecem quando a configuração GSSAPIAuthentication está ativada.
- Nos serviços sshd e ssh, o suporte à compressão LZ77 foi desativado devido à possibilidade de ataques por canais laterais, permitindo a recuperação do conteúdo de outra sessão ao se conectar via uma conexão multiplexada compartilhada com a vítima, aproveitando-se do fato de que dados controlados por atacantes afetam o comprimento total das mensagens criptografadas transmitidas (LZ77 substitui sequências repetidas por referências em um buffer comum para todos os canais).
- Na ferramenta ssh, está proibido o uso dos caracteres ‘$’ e ‘\’ nos nomes de usuário digitados na linha de comando, pois poderiam ser usados para realizar a execução de código ao substituí-los em diretivas ProxyCommand e Match exec mencionadas nas configurações.
- No ssh-keygen, foi corrigido o tratamento inadequado do horário de verão, que causava um deslocamento na validade dos certificados em 1 hora.
- Com o objetivo de bloquear a criação de zip-bombs, o sshd e ssh adicionaram uma verificação para exceder o tamanho máximo de pacotes ao descompactar dados.
- No sshd, foi resolvido um problema que permitia contornar as restrições da palavra-chave 'restrict' no arquivo authorized_keys, que não se aplicava a túneis (PermitTunnel).
- No sshd, foi corrigida a análise incorreta da opção 'none' dentro dos blocos Match, que em algumas diretivas, como AuthorizedPrincipalsFile, era interpretada como um nome de arquivo, e não como um indicador para desabilitar a diretiva.
- No sshd, foi corrigida a falta de reinicialização de privilégios de root em plataformas que não suportam a transmissão de descritores de arquivos e que exigem direitos de root para a alocação de PTY. O problema se manifesta no QNX 6, SCO OpenServer 5 e ao compilar com a opção '--disable-fd-passing'.
Mudanças não relacionadas a vulnerabilidades:
- O suporte ao algoritmo híbrido de criptografia ssh-mldsa44-ed25519 foi ativado, resistente a ataques de computadores quânticos.
- A opção WarnWeakCrypto foi implementada e ativada por padrão no sshd_config para gerenciar a saída de avisos ao estabelecer uma conexão usando algoritmos de troca de chaves vulneráveis a ataques quânticos.
- O ssh-keygen e o ssh-add implementaram a verificação da política credProtect nos dados de autenticação para atender aos requisitos de verificação (PIN ou biometria) antes do acesso às chaves residentes em tokens FIDO.
- O ssh-add ganhou a flag ‘-P’ para pular a entrada opcional do PIN para tokens FIDO e PKCS#11.
- No ssh, o comando ~I implementou a saída de informações sobre versões em sistemas locais e remotos.
- No sftp, as comandos mkdir/lmkdir ganharam a flag ‘-p’ para criar diretórios se necessário.
- O ssh-keygen adicionou o modo ‘hexdump’ para exportar chaves na forma de dumps hexadecimais (por exemplo, para inclusão em documentação).
- No ssh e no sshd, a diretiva ChannelTimeout permite especificar timeouts com precisão de frações de segundo.
- No sshd, a opção AgentSocketPath foi adicionada para especificar o caminho para $SSH_AUTH_SOCK ao redirecionar o agente (por exemplo, user:.ssh/agent para subdiretórios em $HOME e shared:/tmp para diretórios compartilhados).
- No ssh-agent, a flag ‘-A’ foi adicionada para especificar diretórios com sockets de agente onde é permitido o uso de prefixos ‘user:’ e ‘shared:’, como na opção AgentSocketPath.
- No sshd, a verificação de chaves públicas foi 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 de chaves públicas (por padrão 6), após as quais a conexão será encerrada pelo limite MaxAuthTries.
- No ssh e no sshd, à opção TCPKeepAlive foi adicionada a suporte ao valor ‘all’, incluindo o envio de pacotes de keepalive não apenas para a conexão principal, mas também para conexões redirecionadas através dela.
Fonte: opennet.ru
