Что означает следующее сообщение ядра?

12

Появляется следующее / var / log / messages, что это значит?

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

Это происходит, когда задание cron собиралось запустить.

маргаритка
источник

Ответы:

9

Привилегированный процесс можно обмануть, чтобы перезаписать важный файл (/ etc / passwd, / etc / shadow и т. Д.), Указав на него символическую ссылку. Например, если вы знаете, что root запустит программу, которая создает файл в / tmp, вы можете заложить ловушку, угадав, каким будет имя файла (обычно / tmp / fooXXX, где foo - имя программы, а XXX - ID процесса) и заполните / tmp вероятными кандидатами, указывающими на / etc / shadow. Позже root открывает файл в / tmp, усекает и перезаписывает / etc / shadow, и вдруг никто больше не может войти в систему. Существует связанная атака, которая использует условие состязания между проверкой существования временного файла и созданием файла.

Есть способы избежать этой проблемы, включая осторожное использование mktemp () и mkstemp (), но не все программисты и пользователи будут знать об этом риске. В результате недавно был предложен патч для ядра Linux, и, очевидно, он был применен к ядру, которое вы используете. Патч предотвращает следующие символические ссылки в одной из распространенных ситуаций, когда вредоносная ссылка могла быть установлена: общедоступный каталог с установленным фиксированным битом, который обычно настраивается в системах Unix с помощью / tmp. Вместо того, чтобы следовать символической ссылке, попытка системного вызова завершается неудачно с EACCES, и ядро ​​регистрирует сообщение, которое вы видели.

Некоторые связанные болтовни в списке рассылки ядра Linux.

Кайл Джонс
источник