以下内核消息是什么意思?

以下内核消息是什么意思?

/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 作业即将运行时。

答案1

通过将符号链接指向重要文件(/etc/passwd、/etc/shadow 等),可以欺骗特权进程来覆盖该文件。例如,如果您知道 root 将运行一个在 /tmp 中创建文件的程序,您可以通过猜测文件名(通常是 /tmp/fooXXX,其中 foo 是程序名,XXX 是进程 ID)并用指向 /etc/shadow 的可能候选者填充 /tmp。稍后,root 打开 /tmp 中的文件,截断并覆盖 /etc/shadow,突然就没有人可以登录系统了。有一种相关的攻击利用了检查临时文件是否存在和创建文件之间的竞争条件。

有多种方法可以避免此问题,包括谨慎使用 mktemp() 和 mkstemp(),但并非所有程序员和用户都会意识到此风险。因此,最近提出了一个 Linux 内核补丁,并且显然它已应用于您正在使用的内核。该补丁可防止在可能植入恶意链接的常见情况之一中使用以下符号链接:设置了粘性位的全局可写目录,这是 Unix 系统上 /tmp 通常配置的方式。尝试的系统调用没有遵循符号链接,而是失败并显示 EACCES,并且内核会记录您看到的消息。

Linux 内核邮件列表上的一些相关讨论。

相关内容