ニュース

既定の環境で影響を受けるApache Struts 2の脆弱性に注意、サンプルコードが海外の掲示板に掲載

 独立行政法人情報処理推進機構(IPA)セキュリティセンターと一般社団法人JPCERTコーディネーションセンター(JPCERT/CC)、株式会社ラックが、ウェブアプリケーションフレームワーク「Apache Struts 2」の脆弱性「S2-037/CVE-2016-4438」について注意を喚起している。影響を受けるバージョンは「2.3.20」から「2.3.28.1」。Apache Software Foundationでは、脆弱性を修正したバージョン「2.3.29」を配布しているため、更新が推奨されている。

 Apache Struts 2は、オープンソースのJavaウェブアプリケーションフレームワーク。国内でも多くのウェブサイトで採用されている。

 今回、S2-037の脆弱性が確認されたのは、Apache Struts 2のアプリケーションにRESTサービスを実装するための「RESTプラグイン」と呼ばれる機能。リモートから脆弱性を悪用するように細工したHTTPリクエストを送信することで、Apache Struts 2を使用するアプリケーションを実行しているサーバーで、任意のコードが実行できてしまうもの。共通脆弱性評価システムCVSS v3による脆弱性評価は5.6ポイント。

攻撃により、電卓プログラムを実行(ラック公式ブログより転載)

 S2-037は、6月2日に公表された「S2-033」と類似した脆弱性となる。S2-033は既定では無効になっている「DMIの有効化」をしていない環境では影響を受けないものだったが、S2-037では既定の環境でも影響を受ける。この脆弱性を悪用するサンプルコードが海外の掲示板に掲載されたことで、今後、深刻なサイバー攻撃に悪用される可能性があるとして、ラックでは対策を強く推奨している。

 JPCERT/CCでは、Apache Struts 2を使用するサンプルアプリケーションをApache Tomcat上に配備し、実証コードを用いて、脆弱性を悪用するように細工したHTTPリクエストを送り、任意のコードが実行されることを確認したとのこと。

 なお、ラックは公式ブログで、特定文字列を含むリクエストを拒否する以下の暫定回避策を公表しているが、あくまで暫定のものとしている。

 また、2013年4月にサポートが終了している「Struts 1」は、OGNLの機能やRESTプラグインが存在しないため、本脆弱性の影響は受けないとのこと。

 IPAセキュリティセンターとJPCERT/CCでは、Apache Struts 2において、URLValidatorに関するサービス運用妨害 (DoS) の脆弱性「S2-041/CVE-2016-4465」と、クロスサイトリクエストフォージェリの脆弱性「S2-038/CVE-2016-4430」、Getterメソッドにおける検証回避の脆弱性「S2-039/CVE-2016-4433」、入力値検証の回避に関する脆弱性「S2-040/CVE-2016-4431」の4つについても20日付で公表している。バージョン「2.3.29」では、これらの脆弱性も修正されている。