Roundcube Day Zeroの脆弱性

ほとんどのホスティングサイトに存在するさまざまな便利なソフトウェアがあります。 たとえば、phpmyadminは事実上の標準であり、これがないとユーザーは理解できず、高く評価されません。



メールの場合、この「デフォルトのアプリケーション」はラウンドキューブです。



今日は、攻撃者にユーザーのすべてのメールを提供するゼロデイ脆弱性についてお話します





このような人気のあるスクリプトに重大な脆弱性を含めることはできないと伝統的に考えられていました。 はい、おそらくXSS、おそらくCSRF、それは不快ですが、操作が難しく、ほとんどの場合、深刻なデータ漏洩につながりません。



私たちは、お客様がセキュリティ侵害に非常に敏感であることを完全に理解して、共有ホスティングを設計しました。 明確な脅威または潜在的な脅威はないはずです。 ただし、ここしばらくの間、FTPへの不正アクセスに関する苦情の統計的に有意な増加が確認されています。



内部セキュリティから、請求による漏れオプション、ユーザー自身などへのすべてがチェックされました。



ある時点で、リークがメールシステムから発生し、ほとんどの場合Webパーツから発生したことが明らかになりました。



操作パターンは非常に奇妙です-クラッカーはラウンドキューブデータベースからパスワードを受け取り、phpmyadminがそこからセッションを引き出し、セッションからメールのパスワードを受け取ります。 さらに、ラウンドキューブはセッションを暗号化します。つまり、暗号化キーにアクセスできます。



POST要求の部分的なログ記録は、脆弱性の発見に役立ちました。



POST /?_task=settings&_action=save-pref&check_request=&_check_request= HTTP/1.1" 200 1133 "http://mail.ddos-guard.net/?_task=mail" "Mozilla/5.0 (Windows NT 5.1; rv:16.0) Gecko/20100101 Firefox/16.0" "_token=0f7c9ae8a387cb0bc5ce563fa09fe172&_session=generic_message_footer&_name=generic_message_footer&_value=config/db.inc.php









ローカルインクルード。 クラッカーはconfig / db.inc.phpをメールのフッターに追加し、メールを自分自身に送信します。

roundcubeの最新の安定したバージョンがこのような憎悪をもたらすことがどのように判明するかは、まだ不明です。



すべてが非常に簡単です:



index.php:

 else if ($RCMAIL->action == 'save-pref') { include INSTALL_PATH . 'program/steps/utils/save_pref.inc'; }
      
      







プログラム/ステップ/ utils / save_pref.inc:

 $name = get_input_value('_name', RCUBE_INPUT_POST); $value = get_input_value('_value', RCUBE_INPUT_POST); // save preference value $RCMAIL->user->save_prefs(array($name => $value)); // update also session if requested if ($sessname = get_input_value('_session', RCUBE_INPUT_POST)) { // Support multidimensional arrays... $vars = explode('/', $sessname); // ... up to 3 levels if (count($vars) == 1) $_SESSION[$vars[0]] = $value; else if (count($vars) == 2) $_SESSION[$vars[0]][$vars[1]] = $value; else if (count($vars) == 3) $_SESSION[$vars[0]][$vars[1]][$vars[2]] = $value; } $OUTPUT->reset(); $OUTPUT->send();
      
      







攻撃者は構成内の変数を上書きし、roundcubeが機能するユーザーが読み取り可能なファイルを取得できます。



脆弱性は最新バージョン-roundcube 0.8.5および0.9-RCに存在します。



一時的に穴を塞ぐためのパッチ:



 diff --git a/index.php b/index.php index 8de8ca0..6470295 100644 --- a/index.php +++ b/index.php @@ -258,7 +258,8 @@ if ($RCMAIL->action == 'keep-alive') { $OUTPUT->send(); } else if ($RCMAIL->action == 'save-pref') { - include INSTALL_PATH . 'program/steps/utils/save_pref.inc'; + echo "Oops"; + die; }
      
      







ラウンドキューブはCPanel、DirectAdminなどに存在することに注意してください。 実際、最新のホスティング会社のほとんどはこの脆弱性の影響を受けています。



あなたの幸せを祈っています。 警戒してください。



アップデート03/28/2013

開発者からのパッチ

他のバージョンのパッチ-http://sourceforge.net/news/?group_id=139281&id= 310497

バージョン0.8.6、脆弱性の修正-http://roundcube.net/download



All Articles