BONUS-07-2007:Zend Platform ini_modifier Local Root Vulnerability

(更新日: 2007/03/04)

“the Month of PHP Bugs”をできるだけ多くの方が読めるように、Stefanさんの承諾を得て日本語訳を公開しています。このブログの「the Month of PHP Bugs」カテゴリでMOPBの翻訳ページを一覧できます。分かりやすいように意訳できる部分は意訳します。厳密に原文の通り訳していないので正確性を重視される方は原文をご覧ください。

■クレジット
発見者:Stefan Esser
攻撃コード:不必要

■PoCまたは攻撃コード
不必要

■リファレンス
なし

■サマリ
ZendプラットフォームにはGUIでphp.iniファイルを編集するini_modifierが付属します。ini_modifierを悪用することにより、ローカルの攻撃者はGUIに必要なパスワードを知らなくてもphp.iniファイルを変種できます。例えば、攻撃者はルート権限を取得する不正なPHP拡張モジュールをphp.iniに追加し、次のサーバ再起動を待つことができます。

■影響するバージョン
Zendプラットフォーム2.2.3以下

■詳細情報
Zendプラットフォームをインストールすると、SUIDされたini_modifierバイナリがインストールされます。

GUIからシステム全体に利用されるphp.iniファイルを編集する事がこのバイナリファイルの目的です。ini_modifierは乱用を防ぐために何かを編集するまえにGUIパスワードを要求します。ini_modifierはGUIパスワードのMD5ハッシュをphp.iniから読み込みます。それは辞書またはレインボーテーブル攻撃でクラックできますが、ini_modifierの脆弱性を利用する単純な方法もあります。

ini_modifierは-fオプションを使い別のphp.iniファイルを編集対象に指定でき、このオプションを利用するとシステム全体のphp.iniをGUIパスワードなしで編集できます。

同時に以下のコマンドを別のコンソールから実行します。

$ cd /tmp
$ mv ini ini.bak
$ ln -s /usr/local/Zend/etc ini

そしてiniファイルの編集を続けます。

攻撃者は次のWebサーバの再起動で不正なZend拡張モジュールがロードされルート権限で実行されます。

■PoC、攻撃コードまたは再現手順
詳細情報を参照

■備考
この問題は2007年1月末にZend社に通知されました。Zend社はini_modifierのアップデートをZend社のWebサイトで提供していますが、Zendプラットフォーム3.0へのアップグレードを薦めています。

Comments

comments

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です