Apache Struts 2に、リモートより任意のコードが実行可能な脆弱性(CVE-2016-4438)(S2-037)及び、その脆弱性を利用する攻撃コードが発見されました。この脆弱性は、REST Plugin に起因する脆弱性であり、同 Plugin を利用しているコンテンツにのみ影響を受けます。
この脆弱性を利用した攻撃が成立した場合、リモートから Apache Struts2が配置されたWebアプリケーションサーバーの実行権限で任意のコードを実行される危険性があります。
本レポート作成(2016年6月22日)時点において、既に Apache Software Foundation よりこの脆弱性が修正されたバージョンがリリースされております(2016年6月17日付)。しかしながら、攻撃が容易であり、攻撃ツールも公開されていること、また攻撃を受けた際にシステムへの影響が大きいことから、今回、この脆弱性(CVE-2016-4438)の再現性について検証を行いました。
本レポート作成(2016年6月22日)時点において、Apache Software Foundation より、この脆弱性を修正するバージョンがリリースされています。当該脆弱性が修正されたバージョンへとアップグレードしていただくことを推奨いたします。
Apache Struts 2が配置された Web アプリケーションサーバーにて、/WEB-INF/lib 以下にある.jar ファイルを検索します。検索結果として表示される struts2-core-2.x.x.x.jarの『2.x.x.x』の部分が、バージョン情報になります。
また、struts2-core-2.x.x.x.jarファイルに含まれる MANIFEST.MF について、Bundle-Version から始まる行を参照することでも、Apache Struts 2バージョン情報を確認することが可能です。
CVE-2016-4438
Apache Struts 2 の脆弱性 (S2-037) に関する注意喚起
攻撃者は、ターゲットシステムで動作する Web アプリケーションサーバーに配置された Apache Struts 2へ細工を行ったパケットを送信することにより、このターゲットから誘導先のシステムへコネクションを確立させます。この結果、誘導先のシステムより Web アプリケーションサーバーの実行権限で任意のコマンドが実行可能となります。
Debian 8上で動作する Tomcat 7.0.39に配置された Apache Struts 2.3.28
下図は、誘導先のシステム(Windows 8.1)上の画面です。黄線で囲まれた部分は、誘導先のホスト名、および、攻撃コードを実行するユーザー名が表示されています。
一方で、赤線で囲まれている部分は、ターゲットシステムにおいて、カーネル情報、ユーザー情報、/etc/passwd ファイルの内容を表示するコマンドを実行した結果が表示されています。(以下の図では tomcat ユーザーによるコマンドの実行がされていますが、こちらの権限は Apache Struts2が配置された Web アプリケーションサーバーの実行権限に依存します)
これにより、ターゲットシステムで任意のコマンドを実行することに成功したと判断できます。
2016年6月22日 : 初版公開
本件に関するお問い合わせ先
『報道関係者様からのお問い合わせ』 ソフトバンク・テクノロジー株式会社 管理本部 経営企画部 齊藤、安部、菅 メールアドレス:sbt-pr@tech.softbank.co.jp |
『お客様からのお問い合わせ』 下記問い合わせフォームよりお問い合わせください。 |