符号链接竞争是 UNIX 系统中非常常见的漏洞吗

信息安全 linux Unix 符号链接 竞争条件
2021-09-05 13:30:40

据我所知,当我在一个可由多个用户写入的目录中创建一个新文件或目录时(因此对手可以在那里建立一个符号链接),保护自己免受符号链接竞争的唯一方法是创建一个具有足够随机名称的文件。

好吧,一些应用程序可能已经检查过这样的文件是否已经存在,但我不知道任何既是原子的又能够检测符号链接的机制。

因此,当 /tmp 中有许多来自各种应用程序的非随机(甚至重用)文件名时,这意味着所有这些应用程序都容易受到符号链接竞争的影响,不是吗?(好吧,不能简单地确定该漏洞是否容易被滥用,但我现在不关心实际可利用性。)

我希望我一定是哪里错了。

1个回答

所以这应该回答“符号链接常见吗?”的问题。

对斜切数据库检索显示有4个CVE和一个Linux符号链接竞争条件漏洞。相比之下,MITRE 已知有 2749 个 Linux CVE。

内核级别的 Linux 对此进行了保护。Kees Cook为 Linux 创建了一个补丁来防止这个问题:

解决方案是只允许在粘性世界可写目录之外,或者当符号链接的 uid 和跟随者匹配,或者当目录所有者与符号链接的所有者匹配时,才允许遵循符号链接。