ニュース
Apache Struts2の脆弱性、「Jakarta Stream Multi Part Request」でも影響
2017年3月17日 18:42
Apache Struts2における任意のコードが実行可能な脆弱性(CVE-2017-5638/S2-045)に関して、パーサーを「Jakarta Stream Multi Part Request」に変更する方法では脆弱性を回避できないことが確認された。一般社団法人JPCERTコーディネーションセンター(JPCERT/CC)が17日、注意喚起情報を更新して明らかにした。JPCERT/CCでは、脆弱性を修正したApache Struts2のバージョン「2.3.32」「2.5.10.1」にすることを強く推奨している。
この脆弱性は、multipart/form-data形式のリクエストを処理するパーサー「Jakarta Multipart parser」の処理に起因するもの。細工を施したHTTPリクエストを送信することで、リモートから任意のコードを実行可能だという。実証コードが公開されているほか、実際にこれを悪用したとみられる攻撃も発生している。Apache Struts2のバージョン「2.3.5~2.3.31」「2.5~2.5.10」が影響を受ける。
Apache Struts2の開発元であるApache Software Foundationでは、脆弱性を修正したApache Struts2のバージョン「2.3.32」「2.5.10.1」をリリース済みだが、速やかなアップデートが難しい場合などの回避策として、multipart/form-dataを扱うパーサーを、デフォルトのJakarta Multipart parserから別の実装に変更する方法を提示。Jakarta Stream Multi Part Requestなどを挙げていた。
JPCERT/CCが9日時点で出した注意喚起情報でも、使用するパーサーをJakarta Stream Multi Part Requestに変更した場合は任意のコードが実行されないことを確認したと報告していた。しかし、同パーサーでも攻撃が実行可能な場合があるとの情報を受け取ったという。そこで検証を行った結果、脆弱性の影響を受けるApache Struts2のバージョンを使用している場合、パーサーをJakarta Stream Multi Part Requestに変更しても攻撃が可能なことを確認したとしている。