ニュース

Apache Struts 2脆弱性の一時的な回避策、パーサー用修正プラグイン公開

 Apache Software Foundationは21日、Apache Struts 2の脆弱性「CVE-2017-5638」に関する新たなアドバイザリ「S2-046」を公開し、脆弱性への対処策となるプラグインの提供を開始した。

 脆弱性は、細工を施したHTTPリクエストを送信することで、リモートから任意のコードを実行可能なもの。実証コードが公開されており、Apache Struts 2のバージョン「2.3.5~2.3.31」「2.5~2.5.10」が影響を受ける。実際に、都税支払いサイトや日本郵便のサイトから、72万件のクレジットカード情報や3万件弱のメールアドレスが流出するなど、この脆弱性を突いた攻撃が多数観測されている。

 公開されたプラグインは、脆弱性を修正したApache Struts 2のバージョン「2.3.32」「2.5.10.1」にアップデートできない環境へ向けた一時的な回避策となるもの。「Jakarta Multipart parser」を修正するプラグイン「Struts 2-secure-jakarta-multipart-parser-plugin-1.0.jar」と、「Jakarta Stream Multipart Request」を修正する「Struts 2-secure-jakarta-multipart-parser-plugin-1.0.jar」が提供されている。また、アドバイザリでは、Struts 2.5.8~2.5.10のみ有効な回避策として、「File Upload Interceptor」を無効化する方法も挙げられている。

 脆弱性情報が公表された当初は、multipart/form-data形式のリクエストを処理するパーサーをデフォルトのJakarta Multipart parserからJakarta Stream Multi Part Requestに変更することで、脆弱性の影響を回避できるとされていた。しかし、一般社団法人JPCERTコーディネーションセンター(JPCERT/CC)によるその後の検証により、脆弱性の影響を受けるApache Struts 2のバージョンを使用している環境では、パーサーをJakarta Stream Multi Part Requestに変更しても脆弱性を悪用した攻撃が可能なことが確認されていた。

 これを受け、JPCERT/CCによる注意喚起のウェブページや、独立行政法人情報処理推進機構(IPA)らが運営するJVN(Japan Vulnerability Notes)の脆弱性情報ページでも、プラグインなどの回避策に関する情報が追記されている。