開発
Mac OS X Yosemiteにおけるroot権限昇格の脆弱性について
beko
こんにちは。本日は先日ネットで話題になっていたMac OS X Yosemiteにおける深刻な脆弱性について解説をしたいと思います。
みなさんMacを使われている方が多いと思いますので参考にしていただけたらと思います。
概要
これはドイツのセキュリティ企業”SektionEins”がOS X Yosemiteのdynamic linker dyldに非rootユーザーがroot権限を使用できる権限昇格の脆弱性が存在すると発表したもので、AppleがYosemiteから新しいdyldを導入をしたのですが、その中の1つにある”DYLD_PRINT_TO_FILE”という環境変数が実行終了時にファイルをクローズしない不具合を利用したものです。
この脆弱性自体は多くのユーザーが認知しているとのことですが、先日ネットで1行でrootへ昇格できるものが公開されていました。
方法(実際のコード)
その1行でrootへ昇格できるというコードがこちらです。
echo python -c '"import os;os.write(3,\"ALL ALL=(ALL) NOPASSWD: ALL\")"'|DYLD_PRINT_TO_FILE=/etc/sudoers newgrp;sudo su
たったこれだけでroot権限へ昇格できてしまうとは怖いです。。。
これはEDITORの環境変数に”DYLD_PRINT_TO_FILE”指定をして、/”etc/sudoers”に”ALL ALL=(ALL) NOPASSWD:ALL”を書き加えるというもので、
sudoersファイルはsudoの動作設定が記述されており、sudoユーザーでも読み出し権限しかなく、特別に用意されたvisudoを使って編集をしなくてはいけないのですが、今回の脆弱性をつかうといともたやすく書き加えることができてしまいます。