Apache Struts 2 の Parameters インターセプタの実装に起因するClassLoader を操作可能な脆弱性(Scan Tech Report)
Apache Struts 2 の Parameters インターセプタには、class パラメータの処理に起因して ClassLoader を不正に操作されてしまう脆弱性が存在します。
脆弱性と脅威
エクスプロイト
Apache Struts 2 の Parameters インターセプタには、class パラメータの処理に起因して ClassLoader を不正に操作されてしまう脆弱性が存在します。
悪意あるリモートの第三者に利用された場合、Apache Struts 2 上で動作するWeb アプリケーションを一時的にサービス不能状態にされる、あるいはシステム上で不正な操作が実行される可能性があります。
外部に公開する Web アプリケーションで Apache Struts 2 を利用する環境では、深刻な影響を受ける可能性があるため、影響を受けるバージョンの Apache Struts 2 を利用するユーザは速やかに以下に記載する対策を実施することを推奨します。
2.深刻度(CVSS)
5.0
http://nvd.nist.gov/cvss.cfm?version=2&name=CVE-2014-0094&vector=%28AV:N/AC:L/AU:N/C:N/I:P/A:N%29
3.影響を受けるソフトウェア
Apache Struts 2.0.0 - 2.3.16
4.解説
Apache Struts は、Apache Software Foundation が提供する Web アプリケーションを構築するためのフレームワークであり、インターセプタと呼ばれる、
Action クラスの前後に処理を挟み込む機能が実装されています。その中の 1 つ、Parameters インターセプタ (ParametersInterceptor)※1 は、リクエストパラメータを制御することを目的としています。
Apache Struts 2 には、この Parameters インターセプタにおいて、class パラメータを適切にチェックせず、直接 getClass() メソッドへ渡してしまう不備があります。
このため、class.classLoader.* を含むリクエストを介して ClassLoader を不正に操作可能な脆弱性が存在します。
この脆弱性を利用することで、リモートの攻撃者は、Apache Struts 2 上で動作する Web アプリケーションを一時的にサービス不能状態する、あるいは Apache Struts 2 を実行するユーザの権限で任意の Java コードが可能となります。
なお、公開されている攻撃手法では、ClassLoader を介して Apache Tomcat のアクセスログの出力先※2、ファイル名およびフォーマットを変更します。
その後、Java コードを含むリクエストを送信し、アクセスログに Java コードを書き込み、アクセスログを参照することによって、送信した Java コードを実行するという手法になります。
※1 http://struts.apache.org/development/2.x/docs/parameters-interceptor.html
※2 出力先は公開ディレクトリ、ファイル名は JSP ファイルに変更します。
5.対策
以下の Web サイトより、Apache Struts 2.3.16.1 以降を入手しアップデートすることで、この脆弱性を解消※3 することが可能です。
Apache Struts 2.3.16.1:
http://struts.apache.org/download.cgi
あるいは、設定ファイル struts-default.xml の excludeparams に ^class\.を追加し、ClassLoader を操作するために必要な文字列 "class." から始まる文字列がリクエストに含まれていた場合に拒否する設定にすることで、この脆弱性を緩和することが可能です。
※3 Apache Struts 2.3.16.1 におけるこの脆弱性に対する修正が不完全である可能性が Full Disclosure※4 で示唆されています。
このことにより、次期バージョン Apache Struts 2.3.17 では、Struts の github で公開される修正コード※5 が実装される予定です。
※4 http://seclists.org/fulldisclosure/2014/Mar/50
※5 https://github.com/apache/struts/commit/aaf5a3010e3c11ae14e3d3c966a53ebab67146be
6.ソースコード
(Web非公開)
(執筆:株式会社ラック サイバー・グリッド研究所)
※Web非公開該当コンテンツ閲覧をご希望の方はScan Tech Reportにご登録(有料)下さい。
Scan Tech Report
http://scan.netsecurity.ne.jp/archives/51916302.html
ソース・関連リンク
関連記事
Scan PREMIUM 会員限定記事
もっと見る-
-
Linux の GSM ドライバにおける Use-After-Free の脆弱性(Scan Tech Report)
2024 年 1 月に公開された、Linux カーネルの脆弱性を悪用するエクスプロイトコードが公開されています。攻撃者は当該脆弱性の悪用により、一般権限での侵入に成功した OS の管理者権限が奪取可能です。Linux カーネルのアップデートにより対策してください。
-
訃報:セキュリティの草分けロス・アンダーソン氏 死去 67 歳、何回分かの生涯に匹敵する業績
彼は英国王立協会のフェローでもあり、ニュートン、ダーウィン、ホーキング、チューリングが名を連ねる「知の殿堂」入りを果たしていた。
ピアツーピアシステムとハードウェアの耐タンパー性における草分け的存在である彼は、チップや銀行の暗証番号カードなどの安全な設計に長年取り組み大きな影響を与えた。そして、ATM におけるセキュリティ上の欠陥を公表するというアンダーソンの取り組みにより、世界中で ATM の設計が変更されることとなった。 -
ガートナー クラウドクッキング教室 ~ CCoE 構築の重要性
最後に、ハンキンス氏はクラウドセキュリティ全体像を戦略メニューとして図示した。上記で説明したソリューションやツール、各種フレームワークやプラットフォームが、機能や用途ごとに俯瞰できるものだ。この図は、ガートナーのクラウドセキュリティのコンサルティングの戦略ベースを示したものといってもよい。自社のセキュアクラウドを構築するときの「レシピ」として利用することができるだろう。