Apache Software Foundation は、人気の Java Web アプリケーション開発フレームワークのセキュリティ アップデートである Struts 2.3.15.1 をリリースしました。このアップデートでは、リモートの攻撃者がサーバー上で任意のコードを実行できる可能性がある重大な脆弱性を含む 2 つの脆弱性が修正されています。
Struts バージョン 2.3.15.1 は、ユーザーが利用できるプロジェクトの最高品質のバージョンを表す「一般提供」リリースになりました。
新しいリリースでは、DefaultActionMapper クラスの実装、特に「action:」、「redirect:」、「redirectAction:」プレフィックスの問題に起因する 2 つの脆弱性が修正されています。

「Struts 2 2.3.15.1 より前のバージョンでは、『action:』、『redirect:』、『redirectAction:』に続く情報が適切にサニタイズされていません」と、Apache Struts 開発者はアドバイザリで述べています。「これらの情報は値スタックに対して OGNL [Object Graph Navigation Language] 式として評価されるため、サーバーサイドコードを挿入される可能性があります。」
攻撃者は、「redirect:」または「redirectAction:」に続く情報を操作して、ユーザーを任意の場所にリダイレクトすることもできます。
これら 2 つの脆弱性を修正するために、Apache Struts 開発者は、「action:」で始まる情報をサニタイズするコードを追加し、「redirect:」および「redirectAction:」プレフィックスのサポートを削除しました。
廃止されたプレフィックスを使用しているアプリケーションは、Struts 2.3.15.1 以降のバージョンにアップグレードすると正常に動作しなくなります。Struts 開発者は、コード内でこれらのプレフィックスを修正されたナビゲーションルールに置き換えることを推奨しています。
新しい Struts バージョンでは、サーバー パス情報漏洩の問題も修正され、ファイル アップロード例の入力サニタイズが強化されています。
「ファイルアップロードアクションの実行後、結果のJSPにタグが含まれている場合、value属性にはファイルが保存されたサーバーパスが設定されます」と開発者は述べています。「これにより、サーバーのファイルシステム情報が漏洩します。」