Chienomi

sudoに見つかった脆弱性の検証

sudoでrootユーザーで不正にコマンドを実行できるという脆弱性が見つかったそうな(CVE-2019-14287)。 ただ、よくわからなかったので、ちゃんと検証してみることにした。

ちなみに、Manjaroは既にsudoが1.8.28に上がってしまっていて、検証するのは割と大変だったので、まだアップデートしてないホストechinacea(リビングにあるマシン)の実機でテストすることにした。 echinaceaのsudoは1.8.27。

ここではユーザーfooを作成して行った。

検証

sudoersに記載なし (sudo権限なし)

% sudo -u "#-1" ls
[sudo] password for foo:
foo is not in the sudoers file. This incident will be reported.

できない。

sudoersがALL

foo ALL=(ALL) ALL
% sudo -u "#-1" ls
[sudo] password for foo:
%

通るけど、そもそもこの場合foorootとしてコマンドが実行できるので意味はない。

ユーザー明示

foo ALL=(foo) ALL
% sudo -u "#-1" ls
Sorry, user foo is not allowed to execute '/usr/bin/ls' as #-1 on echinacea.

通らない。

root以外

foo ALL=(ALL, !root) ALL
% sudo ls
Sorry, user foo is not allowed to execute '/usr/bin/ls' as root on echinacea.
% sudo -u "#-1" ls
%

問題なのは多分このケース。 この条件だと パスワードも聞かれない 。 oh…

結論

現実問題として

run as (ALL, !root) ってしてる環境、ある????

root以外のユーザーで自由に実行できるようにしたいっていうのは… まぁ、全くなくはないか。アプリケーション用ユーザーだったりすると。

でも、多分そのポリシー自体が脆弱なので、今回の脆弱性によらず問題のある運用だと思う。

というわけで、ほとんどの人は問題ないけど、そんなポリシーで運用している人は、 sudoをアップデートするよりも前に、まずsudoerでユーザーを明示するというポリシーに変更することを考えるべき

Wrote on: 2019-10-15 22:36:00 +09:00