17 julho 2009 ~ 2 Comentários

Nova Vulnerabilidade no Kernel Linux

Tags:

Via g0t hacked

Fora publicada hoje uma nova vulnerabilidade nos kernel do Linux e desta vez uma vulnerabilidade digamos um pouco diferenciada. A vulnerabilidade postada por Brad Spengler, autor do grsecurity, tem a diferença de ser praticamente impossível se descobrir somente fazendo uma auditoria no código-fonte.

A vulnerabilidade encontrada na implementação do net/tun, basicamente ocorre quando o desenvolvedor inicializa uma variável que pode conter o valor NULL e como de costume e boas práticas verifica e se for NULL (0) retorna um erro.


    struct sock *sk = tun->sk; // initialize sk with tun->sk

    if (!tun)
    return POLLERR; // if tun is NULL return error


Até então parece perfeito, a questão é que quando o compilador faz o seu trabalho, que além de transformar em algo *executável* é otimizar o código e neste trabalho encontra-se o erro, o compilador irá ver que a variável já se encontra assinada e irá na verdade remover o bloco (if) (se o checagem do if for NULL) completamente quando o código for compilado. O compilador praticamente introduz uma vulnerabilidade que não existia no código-fonte.

Isso vai fazer o kernel tentar ler/escrever no endereço 0×00000000 que um atacante pode mapear por userland e assim sendo *ownar* a máquina. Algo interessante, Brad conseguiu *bypassar* SELinux, LSM e AppArmor com a vuln.

A correção também é bem simples basta por a verificação de valor NULL antes de assinar a variável.

O exploit pra vulnerabilidade já esta disponibilizada e funciona em sistemas 32 e 64 bits.

As informações foram retiradas de um post da SANS e as informações sobre o exploit foram primeiro divulgadas na Full Disclousure.

2 Respostas para "Nova Vulnerabilidade no Kernel Linux"

  1. gravatar
    Ranieri Marinho de Souza 17 de julho de 2009 às 21:39 Permalink

    Devemos tomar cuidado com o Linux, apesar de não possuir vírus, ainda possui a mão dos homens

    Ranieri Marinho de Souza
    Segurança da Informação
    http://blog.segr.com.br

  2. gravatar
    Anônimo 27 de maio de 2010 às 14:39 Permalink

    estou fazendo um trabalho sobre vulnerabilidade em Linux e estou achando muito pouca coisa a respeito se alguém tiver alguma informação?
    Obrigado

Deixe seu Comentário