CVE-2017-1000367 é uma vulnerabilidade raiz severa do Linux descoberta pela Qualys Security pesquisadores. A falha reside na de Sudo “get_process_ttyname()” função para Linux e poderia permitir que um usuário com privilégios sudo para executar comandos como root ou privilégios elevar ao raiz.
Sudo, ou “superusuário faz!,” é um programa para Linux e UNIX que permite que usuários padrão executem comandos específicos como superusuário ou usuário root.
CVE-2017-1000367: detalhes
A função abre esta função abre “/proc /[pid]/Estado” (homem proc) e lê o número do dispositivo do campo tty de 7 (tty_nr), os pesquisadores explicam. O ruim é que esses campos são separados por espaço e 2 (comm, o nome do arquivo do comando) pode conter espaços que são de fato o problema.
Mais especificamente:
Por exemplo, se executarmos o Sudo por meio do link simbólico “./ 1 “, get_process_ttyname() chama sudo_ttyname_dev() para pesquisar o número do dispositivo tty inexistente “1” nos search_devs integrados[]. Próximo, sudo_ttyname_dev() chama a função sudo_ttyname_scan() para pesquisar este número de dispositivo tty inexistente “1” em uma travessia de amplitude de “/dev”.
A vulnerabilidade decorre da maneira como o Sudo analisa as informações “tty” do arquivo de status do processo no sistema de arquivos proc. Em máquinas Linux, sudo analisa o / proc /[pid]/arquivo estatístico para delinear o número do dispositivo do campo tty do processo 7 (tty_nr), como explicado no alerta de segurança.
Explorando CVE-2017-1000367
Para que a falha seja explorada, o usuário já deve ter privilégios sudo.
SELinux também deve estar habilitado no sistema e sudo deve ter sido construído com suporte SELinux, pesquisadores acrescentam.
Para explorar o bug, o usuário pode escolher um número de dispositivo que não existe atualmente em / dev. Se sudo não encontrar o terminal no diretório / dev / pts, ele realiza uma pesquisa ampla de / dev. É possível alocar um pseudoterminal após o sudo ter verificado o / dev / pts, mas antes do sudo realizar a sua pesquisa ampla em / dev. O invasor pode então criar um link simbólico para o dispositivo recém-criado em um diretório mundial gravável em / dev, como / dev / shm.
Este arquivo será empregado como a entrada padrão do comando, saída e erro sempre que uma função SELinux é especificada na linha de comando sudo. Se o link simbólico em / dev / shm for substituído por um link para outro arquivo antes de ser aberto pelo sudo, é possível sobrescrever um arquivo arbitrário gravando na saída padrão ou erro padrão. Isso pode ser escalado para acesso root total por arquivo confiável como / etc / shadow ou mesmo / etc / sudoers.
Como corrigir CVE-2017-1000367
Felizmente, o problema foi resolvido e corrigido no sudo 1.8.20p1.
Além disso, a correção para analisar / proc /[pid]/stat uma nova linha está contida, está incluído no sudo 1.8.20p2. Devido a mudanças no sudo 1.8.20p1 de como / dev é percorrido, não é possível explorar um / proc /[pid]/arquivo estatístico que contém uma nova linha, pesquisadores concluem.