セキュリティアドバイザリで公表された Apache Struts の4件の脆弱性により、影響を受けるアプリケーションがリモートコード実行、サービス拒否(DoS)、ユーザー間のデータ漏えいの危険にさらされる恐れがあります。
推奨される修正バージョンは Struts 7.4.0 以降です。6.x の保守ブランチにとどまる環境では、Struts 6.12.0 以降が対象となります。
問題は、レガシーなアクションマッピング、小数のレンダリング、RESTリクエストの処理、ローカライズされたメッセージの書式設定にそれぞれ関係しています。影響を受けるかどうかは、インストールされているバージョンだけでなく、アプリケーションの設定や利用している機能によって決まります。
CVE-2026-104711は LeaveSong 氏が報告し、深刻度は「Moderate」と評価されています。細工したリクエストによって、レガシーなRESTfulアクションマッパー経由でOGNL式を注入され、リモートコード実行に至る可能性があります。
影響を受けるのは、Struts 2.0.0~2.3.37、2.5.0~2.5.33、6.0.0~6.11.0です。Struts 7.0.0~7.3.0は、OGNLの許可リスト(allowlist)を無効にしている場合にのみ影響を受けます。デフォルト設定であれば保護されています。
デフォルトマッパー、restful2マッパー、またはRESTプラグインを使用しているアプリケーションは、この脆弱性の影響を受けません。Apacheはこれらを別個のマッピング実装として文書化しています。そのため、影響範囲を評価する際は、どのマッパーが設定されているかの確認が欠かせません。
CVE-2026-104712は 0xCc.zhang 氏が報告し、深刻度は「Moderate」です。リクエストパラメータを java.math.BigDecimal 型のプロパティにバインドし、そのプロパティをStrutsタグライブラリでレンダリングするアプリケーションが影響を受けます。
小さなリクエストでも不釣り合いに大きなレスポンスが生成されるため、認証なしの攻撃者が少量のトラフィックを継続して送るだけで、サーバーのCPUと送信ネットワーク帯域を枯渇させることができます。
影響を受けるリリースは、Struts 2.5.14~2.5.33、6.0.0~6.11.0、7.0.0~7.3.0です。ほかの数値型や、JSONプラグインまたはRESTプラグインが生成するレスポンスは影響を受けません。
一時的な回避策として、開発者はレンダリング前に小数のスケールを制限するコンバーターを登録できます。アプリケーション全体に適用するコンバーターは、クラスパスのルートにある struts-conversion.properties に記述します。古い環境では xwork-conversion.properties を使用します。
CVE-2026-104713は n0mi1k 氏が報告し、深刻度は「Important」です。オプションのRESTプラグインで、リクエストボディの読み取りに上限がないことが原因です。サイズの大きなリクエストを1件送るだけで、その大きさに比例したメモリが割り当てられ、Javaヒープが枯渇して、ほかのユーザーにも支障が及ぶ恐れがあります。
影響を受けるのは、Struts 2.1.8~2.3.37、2.5.0~2.5.33、6.0.0~6.11.0、7.0.0~7.3.0です。修正版ではデフォルトで2,097,152文字の上限が設けられ、struts.rest.content.maxLength で変更できます。
サイズが上限を超えたボディは、アクションが呼び出される前に拒否されます。パッチを適用するまでは、管理者がリバースプロキシまたはサーブレットコンテナーでリクエストボディのサイズ制限を適用してください。
CVE-2026-104714も n0mi1k 氏が報告し、深刻度は「Moderate」です。日付や時刻の引数を含むローカライズ済みメッセージに使われる、共有フォーマッターが影響を受けます。
同時リクエストが互いに干渉し、あるユーザーの値がほかのユーザーのレスポンスに表示されたり、サーバーエラーが発生したりします。悪意のある入力がなくても、通常のトラフィックだけでこの欠陥が顕在化する可能性があります。
この脆弱性は、Struts 2.0.0~2.3.37、2.5.0~2.5.33、6.0.0~6.11.0、7.0.0~7.3.0にまたがります。開発者は一時的な対処として、メッセージへの埋め込み前に日付と時刻の値をあらかじめ整形しておくことができます。アップグレードすれば4件すべてに対処できます。サポートが終了したブランチを使っている場合は、サポート対象のリリースへの移行が必要です。
16,000以上のSOCチームがANY.RUNを活用し、脅威調査を効率化して手作業を削減しています。チームで試す
翻訳元: https://cyberpress.org/apache-struts-vulnerabilities/