CVE-2023-42456
sudo-rs Vulnerabilidade de Travessia de Caminho Relativo em Arquivo de Sessão
- Publicado
- 21 de set. de 2023
- Atualizado
- 10 de jun. de 2026
- Atribuindo CNA
- GitHub_M
- Evidência observada
- 8 de ago. de 2026
CVSS primário
nvd · CVSS 3.1
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:HBaixo · próximos 30 dias
- Percentil
- 45,7%
- Data do modelo
- 21 de set. de 2026
EPSS é uma estimativa estatística, não uma certeza ou uma medida de impacto. Combine-o com CVSS, status KEV, exposição e seu ambiente.
Resumo
# Sudo-rs O Sudo-rs, uma implementação de sudo e su com segurança de memória, permite que os usuários não precisem inserir autenticação a cada tentativa de sudo, mas sim apenas exigir autenticação de vez em quando em cada terminal ou grupo de processos. Somente após um tempo limite configurável ter passado, o usuário precisará se autenticar novamente. Para dar suporte a essa funcionalidade, existe um conjunto de arquivos de sessão (timestamps) para cada usuário, armazenados em `/var/run/sudo-rs/ts`. Esses arquivos são nomeados de acordo com o nome de usuário a partir do qual a tentativa de sudo é feita (o usuário de origem). Foi descoberto um problema em versões anteriores à 0.2.1, onde nomes de usuário contendo os caracteres `.` e `/` poderiam resultar na corrupção de arquivos específicos no sistema de arquivos. Como os nomes de usuário geralmente não são limitados pelos caracteres que podem conter, é possível construir um nome de usuário que pareça um caminho relativo. Por exemplo, poderíamos adicionar um usuário ao sistema contendo o nome de usuário `../../../../bin/cp`. Ao fazer login como um usuário com esse nome, esse usuário poderia executar `sudo -K` para limpar seu arquivo de registro de sessão. O código de sessão então constrói o caminho para o arquivo de sessão concatenando o nome de usuário ao diretório de armazenamento dos arquivos de sessão, resultando em um caminho resolvido de `/bin/cp`. O código então limpa esse arquivo, resultando na remoção efetiva do binário `cp` do sistema. Um atacante precisa ser capaz de fazer login como um usuário com um nome de usuário construído. Dado que tal nome de usuário provavelmente não existe em um sistema existente, ele também precisará ser capaz de criar os usuários com os nomes de usuário construídos. O problema é corrigido na versão 0.2.1 do sudo-rs. O Sudo-rs agora usa o uid do usuário em vez do nome de usuário para determinar o nome do arquivo. Observe que uma atualização para esta versão resultará em arquivos de sessão existentes sendo ignorados e os usuários serão forçados a se autenticar novamente. Isso também elimina completamente qualquer possibilidade de path traversal, dado que os uids são sempre valores inteiros. Os comandos `sudo -K` e `sudo -k` podem ser executados, mesmo que um usuário não tenha acesso sudo. Como medida alternativa, certifique-se de que o sistema não contenha nenhum usuário com um nome de usuário especialmente criado. Enquanto esse for o caso e enquanto usuários não confiáveis não tiverem a capacidade de criar usuários arbitrários no sistema, não se deve conseguir explorar esse problema.
Uso responsável
Use informações de vulnerabilidade apenas em sistemas que você possui ou está autorizado a testar. O Kitploit vincula-se a metadados de pesquisa pública e não armazena código de exploração ou cargas maliciosas.