Apache Struts 2に新たな脆弱性”CVE-2018-11776”。遠隔からコード実行の恐れ。

f:id:nanashi0x:20180822233213p:plain

 

Semmleのセキュリティ研究者であるMan Yue Mo氏は、自身が所属するApache Struts Webアプリケーションフレームワークに重要なリモートコード実行脆弱性を公開しました。

この記事では、当該脆弱性を発見したMan Yue Mo氏の記事と、それを解説したTheHackerNewsの記事を参考に、執筆時点(2018/08/22 23時37分)で分かっている情報を簡単に記載します。

海外の人たちがそろそろ起き始めて、PoCを公開し始めると思いますので、なにか分かり次第こちらの記事に記載します。

また、日本国内のセキュリティ専門家達におかれましては、更なるリサーチの足がかりとして役に立てば幸いです。 

忙しい人向けの簡単まとめ

  • 悪意を持った攻撃者が脆弱なStruts 2を動かしているApacheサーバー上で悪質なコードを遠隔から実行する可能性がある(RCE = Remote Code Execution)
  • 脆弱なStrutsバージョンは2.3〜2.3.34、及びStruts 2.5〜Struts 2.5.16
  • 発生条件は「①.alwaysSelectFullNamespaceフラグが、Struts設定ではtrueに設定されている」又は「②.Struts設定ファイルに、オプションのnamespace属性を指定しないか、ワイルドカードネームスペースを指定する "action"タグまたは "url"タグが含まれてる」
  • Apache Strutsは、Strutsバージョン2.3.35および2.5.17のリリースでこの脆弱性を修正を公開済。

発見された脆弱性(CVE-2018-11776)について

脆弱性(CVE-2018-11776)は、Apache Strutsのコアにあり、任意の条件が揃った状態でStrutsフレームワークのコアでユーザーが提供する信頼できない入力の検証が不十分なために発生する。

脆弱となる条件

次の条件を満たす場合、脆弱であるとされる。

  • alwaysSelectFullNamespaceフラグが、Struts設定ではtrueに設定されている
  • Struts設定ファイルに、オプションのnamespace属性を指定しないか、ワイルドカードネームスペースを指定する "action"タグまたは "url"タグが含まれてる

対象となるStrutsバージョン

Apache Strutsでサポートされている以下のバージョンとなる。

また、上記以外のサポートされていないApache Strutsバージョンを使用するすべてのアプリケーションは、追加のプラグインが有効になっていない場合でも当脆弱性(CVE-2018-11776)の対象となるとされる。

脆弱性をエクスプロイトする事による影響

攻撃者によって細工されたURLを訪問するだけで、当脆弱性(CVE-2018-11776)が引き起こされる。

エクスプロイトに成功すると、攻撃者が悪質なコードを実行し、脆弱なアプリケーションを実行しているターゲットサーバーの制御権を奪うことが出来る。

発見者の懸念事項

Man Yue Mo氏は、自身が属する企業のブログにて以下のように述べている。

アプリケーションが現在脆弱ではないとしてもStruts設定ファイルの意図しない変更に将来アプリケーションが脆弱になる可能性があります。

脆弱性の対応方法

Apache Strutsは、Strutsバージョン2.3.35および2.5.17のリリースでこの脆弱性を修正を公開済なので、Apache Strutsを使用する組織や開発者は、できるだけ早くStrutsコンポーネントをアップグレードすること。

脆弱性のPoC

 

脆弱性に関する参考情報(海外メディア)

参考情報(国内メディア、専門機関)

 

Appendix: Apache Struts 2とは

Apache Struts2は、Javaプログラミング言語でWebアプリケーションを開発するためのオープンソースフレームワークであり、Vodafone、Lockheed Martin、Virgin Atlantic、IRSなどFortune 100企業の65%を含む世界の企業で広く使用されているオープンソースフレームワークのこと。

更新情報

  • 初稿 (2018/08/22 23:55)
  • 参考情報に海外メディアのリンク追加  (2018/08/23  07:48)
  • 参考情報に国内メディア、専門機関のリンク追加(2018/08/23  12:38)
  • PoC(未検証)のリンクを追加(2018/08/23 12:44)