O que significa a seguinte mensagem do kernel?

12

O seguinte 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)

Isso acontece quando um trabalho cron estava prestes a ser executado.

margarida
fonte

Respostas:

9

Um processo privilegiado pode ser induzido a sobrescrever um arquivo importante (/ etc / passwd, / etc / shadow, etc.) apontando um link simbólico para ele. Por exemplo, se você sabe que o root executará um programa que cria um arquivo em / tmp, você pode criar uma armadilha adivinhando qual será o nome do arquivo (normalmente / tmp / fooXXX, com foo sendo o nome do programa e XXX sendo o processo) e preencha / tmp com os candidatos prováveis ​​apontando para / etc / shadow. Mais tarde, o root abre o arquivo em / tmp, trunca e sobrescreve / etc / shadow e, de repente, ninguém mais pode fazer login 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 do kernel Linux foi proposto recentemente e, aparentemente, foi aplicado ao kernel que você está usando. O patch evita seguir links simbólicos em uma das situações comuns em que o link malicioso pode ter sido plantado: um diretório gravável em todo o mundo com o conjunto de bits persistentes, que é a maneira como o tmp é normalmente configurado nos sistemas Unix. Em vez de seguir o link simbólico, a tentativa de chamada do sistema falha com o EACCES e o kernel registra a mensagem que você viu.

Algumas conversas relacionadas na lista de discussão do kernel do Linux.

Kyle Jones
fonte