Linuxをクラッシュさせられるバグが権限昇格のバグに進化した件

Linux

今月の初めに公表されていた、一般ユーザーが Linuxシステムをクラッシュさせてしまえるバグ CVE-2014-9090 が実は root権限の奪取にも使えることがわかり CVE-2014-9322 に進化しています。

CVE-2014-9090の日本語情報はこちら。

Linux Kernel の arch/x86/kernel/traps.c 内の do_double_fault 関数におけるサービス運用妨害 (DoS) の脆弱性

要するに、64bit版の Linuxでは管理者権限を持たない一般ユーザーが「わざと」システムをクラッシュさせてしまうことができるということです。対象となるのは x86_64用 Linuxカーネルの 今までの全てのバージョンです。

いま動いてるLinuxが 32bitか64bitかよくわからない場合は uname -m と入力して i686と出れば 32bit、x86_64と出れば 64bitだと考えて下さい。32bitなら今回はセーフ。

実験してみる

実際にクラッシュさせてみましょう。linux-clock-testsというテストツール群に含まれる sigreturn_32 というプログラムで実験できます。

git clone https://gitorious.org/linux-test-utils/linux-clock-tests.git
cd linux-clock-tests
make
./sigreturn_32

アッー!

クラッシュの様子

この問題については 各Linuxディストリビューションのベンダから修正が出ています(例えばDebianはこれ)が、修正を反映させるにはシステムの再起動が必要です。絶賛運用中のシステムを再起動するのはなかなか難しい作業ですので、まだこの修正が適用されていないシステムも多いことでしょう。下記の楽観要素2点が同時に存在することから、それほど急いで対策をする必要が無いという判断に至ることも多いと思われます。

  • 対象システムのユーザー権限を持っていない限りこの脆弱性は利用できない
  • 脆弱性を利用されたところで、システムが止まるだけなので再起動すれば良い(機密漏洩などにはつながらない)

脆弱性エボリューション

ところが、Linux kernel: multiple x86_64 vulnerabilities という投稿によればこの脆弱性をシステムのクラッシュだけではなく権限昇格にも利用出来てしまえることがわかったそうなのです(CVE-2014-9322)。権限昇格とは平たくいうと一般ユーザーがroot権限を奪うことです。

今のところ当方では実証コードを入手できていないため実験はしていませんが、これでふたつ上げた楽観要素のうちの2番目が消失しました。攻撃者は1番目のハードルさえクリアすれば、他人のサーバに root権限でアクセスして機密を盗み去ることができることになります。

そういえばありましたね!ありました。攻撃者が1番目のハードルをクリアするのに使える脆弱性で、最近大騒ぎになったのが。

BASHの脆弱性でCGIスクリプトにアレさせてみました

このような脆弱性に該当する Linuxサーバーは今回の CVE-2014-9322との組み合わせで root権限を奪われることになります(理論上の話であり、検証はしていません)。

もっとも、この手のコンボ技は過去のものも含めれば無数にありえますので今回のこれらのような組み合わせが特別類を見ないものだというわけではありません。例を上げればWordPressの特定プラグインに存在した脆弱性なども bashの脆弱性と同等の威力があり組み合わせに利用できてしまいますので、厄介なことにこの手の問題はサーバー管理者だけのマターではないことになります。

ともあれ 64bit Linuxサーバ管理者の皆様は CVE-2014-9322 の影響と動向について注視して下さい。

蛇足: Xenの準仮想化ドメインは無事

Xenの準仮想化ドメインでは、メモリアドレス周りの物理-仮想間マッピングをハイパーバイザーがソフトウェア的に行う関係だと思うのですがこの脆弱性の影響を受けない(少なくとも sigreturn_32 ツールでクラッシュしない)ことを確認しました(Dom0, DomUとも)。つまり Walbrixは幸いこの脆弱性と関係ないことになります。

但し、PVH を有効にしている場合は sigreturn_32 でしっかりクラッシュしたことから脆弱性の影響を受けるものと思われますのでご注意下さい。そんなマニアックな機能を使っているのは弊社くらいだと思いますが。

同じカテゴリの記事

glibcのgethostbyname関数に存在するCVE-2015-0235(GHOST)脆弱性について 2015年1月28日
DFSがどうこうと言われて Sambaの共有にアクセスできなくなった時の対処 2015年1月21日
Linux 3.18リリース 2014年12月8日
BASHの脆弱性でCGIスクリプトにアレさせてみました 2014年9月25日

お勧めカテゴリ

英語でアニメ観ようず
なじみ深い日本製アニメの英語版DVDで、字幕と音声から英語を学びましょうという趣旨のシリーズ記事です。
ScalaのようでJavaだけど少しScalaなJSON API
Scalaと Spring Frameworkを使って REST的なJSON APIを実装してみましょう。
ドクジリアン柔術少女 すから☆ぱいそん
代表 嶋田大貴のブログです。写真は神仏に見せ金をはたらく罰当たりの図