sudoに見つかった脆弱性の検証
Live With Linux::news
- TOP
- Articles
- Live With Linux
- 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:
%
通るけど、そもそもこの場合foo
はroot
としてコマンドが実行できるので意味はない。
ユーザー明示
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でユーザーを明示するというポリシーに変更することを考えるべき 。