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
当脆弱性に関する参考情報(海外メディア)
- S2-057 - Apache Struts 2 Documentation - Apache Software Foundation
-
CVE-2018-11776: How to find 5 RCEs in Apache Struts with Semmle QL - Blog - LGTM
-
Critical Flaw in Apache Struts2 Lets Hackers Take Over Web Servers
- Critical remote code execution flaw in Apache Struts exposes the enterprise to attack | ZDNet
- Expert discovered a Critical Remote Code Execution flaw in Apache StrutsSecurity Affairs
- New critical vulnerability exposes Apache Struts instances to remote attacks - CyberScoop
参考情報(国内メディア、専門機関)
- 「Apache Struts 2」に重大な脆弱性、直ちに更新を - ITmedia エンタープライズ
- 【セキュリティ ニュース】「Apache Struts 2」に深刻な脆弱性 - 悪用容易で攻撃ツールなど出回るおそれも(1ページ目 / 全2ページ):Security NEXT
- 「Apache Struts 2」にリモートコード実行を可能にする脆弱性--パッチの適用を - ZDNet Japan
- Apache Struts2 の脆弱性対策について(CVE-2018-11776)(S2-057):IPA 独立行政法人 情報処理推進機構
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)