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 会員限定記事
もっと見る-
-
Jenkins に任意のファイルの読み取りが可能となるコマンドラインインターフェース機能におけるアクセス制御不備の脆弱性(Scan Tech Report)
2024 年 1 月に公開された、任意のファイルの読み取りが可能となる Jenkins の脆弱性に対するエクスプロイトコードが公開されています。
-
今日もどこかで情報漏えい 第22回「2024年2月の情報漏えい」プロモーションではなかった 公式 X への攻撃
2 月に最も件数換算の被害規模が大きかったのは、株式会社大藤つり具による「大藤つり具にランサムウェア攻撃、過去にダイレクトメールを送付した顧客情報が流出した可能性」の最大 約20 万件だった。
-
人かAIか? 生成方法別フィッシングメール打率比較
類似の実験では「見分けがつかない」「成功率が高い」といった結果にとどまっていることが多いが、この論文では AI 作成フィッシングメールの「品質評価」、人力と AI 作成メールに対して AI がどの程度、真贋や意図を判定できるかにまで踏み込んで調べた。