O que significa a seguinte mensagem do kernel?

12

A seguir, aparece / var / log / messages, o que isso significa?

  Feb 19 22:51:20  kernel: [  187.819487] non-matching-uid symlink following attempted in sticky world-writable directory by sh (fsuid 1001 != 0)

Acontece quando um cron job estava prestes a ser executado.

    
por daisy 19.02.2012 / 16:11

1 resposta

9

Um processo privilegiado pode ser induzido a sobrescrever um arquivo importante (/ etc / passwd, / etc / shadow, etc.) apontando um symlink para ele. Por exemplo, se você souber que o root executará um programa que cria um arquivo em / tmp, você pode colocar uma armadilha adivinhando qual será o nome do arquivo (normalmente / tmp / fooXXX, com foo sendo o nome do programa e sendo XXX o ID do processo) e preenchimento / tmp com candidatos prováveis apontando para / etc / shadow. Mais tarde, o root abre o arquivo em / tmp, trunca e sobrescreve o / etc / shadow e de repente ninguém mais pode entrar no sistema. Há um ataque relacionado que explora uma condição de corrida entre a verificação da existência de um arquivo temporário e a criação do arquivo.

Existem maneiras de evitar esse problema, incluindo o uso cuidadoso de mktemp () e mkstemp (), mas nem todos os programadores e usuários estarão cientes desse risco. Como resultado, um patch de kernel do Linux foi proposto recentemente e aparentemente foi aplicado ao kernel que você está usando. O patch evita seguir os links simbólicos em uma das situações comuns em que o link mal-intencionado pode ter sido plantado: um diretório gravável pelo mundo com o conjunto de bits fixos, que é o modo como o / tmp é normalmente configurado em sistemas Unix. Em vez de seguir o symlink, a tentativa de chamada do sistema falha com o EACCES e o kernel registra a mensagem que você viu.

Alguns faladores relacionados na lista de discussão do kernel do Linux.

    
por 19.02.2012 / 17:32