• Privilégios de Root Através de Vulnerabilidade na Biblioteca GNU C

    Uma vulnerabilidade no gerenciador da biblioteca GNU C pode ser explorada para obtenção de privilégios de root no Linux e em outros sistemas. Os atacantes poderiam explorar a falha, por exemplo, para obter controle total de um sistema através da escalada de seus privilégios depois de invadir um servidor Web que possuam direitos de acesso restrito. Devido a essa ocorrência, diversos distribuidores já estão trabalhando nas devidas atualizações.

    O carregamento de bibliotecas ligadas dinamicamente, quando são iniciadas aplicações com privilégios Set User ID (SUID), sempre foi um potencial problema de segurança. Por exemplo, um invasor pode definir um caminho para uma biblioteca criada para a variável LD_PRELOAD, iniciar um programa SUID e ter a biblioteca sendo executada no mesmo nível do privilégio que o programa SUID. Por este motivo, várias medidas de segurança e restrições estão em vigor, para impedir que os aplicativos sejam carregados de forma arbitrária, por exemplo, adicionando informações de path.



    O novo problema está enraizado na maneira em que o gerenciador expande a variável $ORIGINS apresentada pelo aplicativo. $ORIGIN permite que caminhos da biblioteca possam se afirmar em relação à aplicação de uma localização. Isso permite que as bibliotecas que são usadas com pouca freqüência possam ser localizadas no subdiretório do aplicativo ao invés do caminho da biblioteca padrão. Enquanto Tavis Ormandy que descobriu a falha, disse que a especificação ELF recomenda que o gerenciador ignore a variável $ORIGIN com SUID e binários SGID, os desenvolvedores do glibc não implementaram esta recomendação.

    A partir da utilização de vários métodos envolvendo links de disco rígido, os descritores de arquivo redirecionado e variáveis de ambiente, Ormandy conseguiu explorar a vulnerabilidade e abrir um shell no nível de privilégios de root. De acordo com testes realizados pelo desenvolvedor, pelo menos as versões glibc 2.12.1 no Fedora 13 e glibc 2.5 do Red Hat Enterprise Linux (RHEL) 5 são vulneráveis. Ormandy também acrescentou ao seu relatório que a referida falha pode ser explorada de várias maneiras.

    Saiba Mais:

    [1] GNU C Library: http://www.gnu.org/software/libc/
    [2] Seclists.Org: http://seclists.org/fulldisclosure/2010/Oct/257