web-dev-qa-db-ja.com

シンボリックリンクの競合は、UNIXシステムの非常に一般的な脆弱性ですか?

私の知る限り、複数のユーザーが書き込むことができるディレクトリに新しいファイルまたはディレクトリを作成している場合(したがって、敵がそこにシンボリックリンクを作成している可能性があります)、シンボリックリンクの競合から身を守る唯一の方法は、ランダムな名前のファイル。

まあ、いくつかのアプリはそのようなファイルが既に存在するかどうかをチェックしたかもしれませんが、私はアトミックでありシンボリックリンクを検出することができるメカニズムを知りません。

したがって、さまざまなアプリの/ tmpにランダムでない(または再利用された)ファイル名が多数ある場合、これらのすべてのアプリがシンボリックリンクの競合に対して脆弱ですよね? (まあ、脆弱性が簡単に悪用される可能性があるかどうかを簡単に決定することはできませんが、今のところ実用的な悪用については気にしていません。)

どこかおかしいと思います。

9
v6ak

したがって、これは「シンボリックリンクは一般的ですか?」という質問に答えるはずです。

A MITREデータベースで検索 は、Linux Symlinkの競合状態の脆弱性に対する4つのCVEがあることを示しています。比較のために、 MITREが知っている2749のLinux CVEがあります。

カーネルレベルのLinuxには、これに対する保護機能があります。 Kees Cook Linux用のパッチを作成 この問題を回避するには:

解決策は、粘着性のある誰でも書き込み可能なディレクトリの外、シンボリックリンクのuidとフォロワーが一致する場合、またはディレクトリの所有者がシンボリックリンクの所有者と一致する場合にのみ、シンボリックリンクをたどることを許可することです。

5
Ohnana