Apache Strutsは、Java で業務用のWebシステムを作るための部品(フレームワーク)です。自社で作った、または委託先に作ってもらったシステムの中に入っていることがあります。公式は2026年10月5日付で、4件の脆弱性 (S2-075〜S2-078)を公表しました。
いちばん注目されるS2-075は、legacy RESTful action mapperという古い仕組みを使う設定のときだけ影響します。Strutsを使っていても、条件に当たらなければ対象外です。
公式の資料で確かめられたこと
項目
内容
出どころ
修正版
7.4.0と6.12.0。どちらも10月2日にGeneral Availabilityとして公開
Struts お知らせ
公表日
4件とも2026年10月5日
Struts お知らせ、NVD
S2-075の深刻度
Maximum security rating は Moderate。影響は「Possible Remote Code Execution vulnerability」
S2-075
NVDの評価
CVSS 3.1は9.8(CRITICAL)。NVDの表示では追加の提供元(Secondary)の値
NVD
悪用
確かめた資料には書かれていない。NVDのSSVC(CISA の評価)は exploitation: none
NVD
KEV
4件とも載っていない(10月12日に取得した catalogVersion 2026.10.08)
CISA
Struts公式の深刻度はModerate(中)ですが、NVDのCVSSは9.8です。評価する側で数字が違います。どちらも出どころ付きで読んでください。
S2-075の表。最大深刻度Moderate、影響する版の範囲が並ぶ 出典: Apache Software Foundation「S2-075」 (引用)
4件の一覧
「内容」は、Strutsの原文を編集部が日本語にしたものです。
番号
CVE
内容
最大深刻度
影響
NVDのCVSS
S2-075
CVE-2026-104711
legacy RESTful action mapperでのOGNLインジェクション
Moderate
Possible Remote Code Execution
9.8
S2-076
CVE-2026-104712
BigDecimalのパラメータを表示すると、応答が極端に大きくなる
Moderate
Denial of Service
7.5
S2-077
CVE-2026-104713
REST pluginが、リクエスト本文を上限なく読み込む
Important
Denial of Service
6.5
S2-078
CVE-2026-104714
共有された書式処理で、別の利用者の日時の値が応答に出る
Moderate
Disclosure of Data, Denial of Service
8.8
OGNLは、Strutsが内部で式を評価するために使う仕組みです。NVDの弱点分類は順に CWE-917・405・770・362で、登録元はApache(security@apache.org )です。
各件の条件と回避策
番号
影響する条件(原文より)
影響する版
回避策(Workaround)
S2-075
legacy RESTful action mapperを使う設定。default action mapper・restful2 mapper・Struts REST pluginは対象外。Struts 7は、OGNL allowlistが有効な既定では対象外
2.0.0〜2.3.37(EOL)、2.5.0〜2.5.33(EOL)、6.0.0〜6.11.0、7.0.0〜7.3.0(allowlist無効時のみ)
default action mapper・restful2 mapper・Struts REST pluginのどれかに切り替える
S2-076
リクエストのパラメータを java.math.BigDecimal に結びつけ、Strutsのタグライブラリで表示している。JSON plugin・REST pluginの応答、double・float・long・intは対象外
2.5.14〜2.5.33(EOL)、6.0.0〜6.11.0、7.0.0〜7.3.0。2.3系以前は対象外
struts-conversion.properties(クラスパス直下、通常は WEB-INF/classes)に、値の桁数を制限するBigDecimal用のtype converterを登録する。2.5系ではファイル名が xwork-conversion.properties
S2-077
REST pluginを使っている。追加設定なしの既定で対象
2.1.8〜2.3.37(EOL)、2.5.0〜2.5.33(EOL)、6.0.0〜6.11.0、7.0.0〜7.3.0
Struts内の設定だけの回避策はない。更新できないときは、リバースプロキシかサーブレットコンテナで、本文のサイズの上限をかける
S2-078
日付や時刻を書式付きで差し込むローカライズ済みメッセージを、アプリが自前で持っている。Strutsが同梱するメッセージは該当しない
2.0.0〜2.3.37(EOL)、2.5.0〜2.5.33(EOL)、6.0.0〜6.11.0、7.0.0〜7.3.0
値を先に整形してからメッセージに渡し、日時の書式を使わないメッセージにする
S2-077の修正版は、REST pluginが受け付ける本文を、既定で2MB(2,097,152文字)までに制限します。大きな本文を受けるシステムは、struts.rest.content.maxLength で上限を上げます(原文)。
サポートが終わった系列
公式の「End-of-Life Apache Struts Versions」は、次の系列をEOLとしています。EOLの系列には、セキュリティ 修正もバグ修正も出ないと書かれています。
系列
EOL日(公式のEOLのページ)
Struts 2.5.x
2023年10月30日
Struts 2.3.x
2019年9月12日
Struts 1.x
2013年4月5日
2.5系のEOL告知は、日付を2023-10-30とし、「6か月後に終了する」と書いています。EOLのページの日付と、この告知の文は、そのままでは一致しません。どちらも原文のとおりです。
ダウンロードのページが載せているのは、7.4.0と6.12.0だけです。「載っていない版はEOLで、修正は出ない」と書かれています。6.xと7.xの終了予定は、確かめたページに書かれていません。
S2-075の対象版には、EOLの2.3系と2.5系も入っています。ただし修正版は7.4.0と6.12.0なので、2.5系以前を使うシステムは、この更新では直せません。公式のEOLのページは、移行 が難しい場合に、第三者の延長サポートがあると紹介しています(ASFは推奨していないと書いています)。
BSIの注意情報について
BSI(CERT-Bund)の WID-SEC-2026-3852 は、深刻度「hoch」(高)で、題は「Apache Struts: Mehrere Schwachstellen ermöglichen Ausführen von beliebigem Programmcode mit den Rechten des Dienstes」です。ただ、10月12日に取得したBSIのデータ(CSAF)が挙げるCVEは、CVE-2016-3081と3082で、参照はS2-031・S2-032です。今回の4件ではありません。
この注意情報は、10月11日(UTC)に第4版で「Aktive Ausnutzung gemeldet」(悪用の報告)が加わり、CISAのKEVを参照しています。この話は、CISAのKEV追加の記事 で扱いました。
影響する会社・しない会社
影響する: Strutsを使う業務システムで、legacy RESTful action mapperを使う設定(S2-075)、REST plugin(S2-077)、BigDecimalの表示(S2-076)、日時付きメッセージ(S2-078)のどれかに当たる会社
影響する: Struts 7で、OGNLのallowlistを無効にしている会社(S2-075)
影響する(確認が要る): 2.5系・2.3系を使い続けているシステムの会社。対象版に入りますが、修正版はありません
影響しない: Strutsを使わない会社。使っていても、各件の条件に当たらない場合や、7.4.0・6.12.0以降の場合は、該当件の対象外です
情シスが今日やること
自社と委託先のシステムの一覧から、Struts(struts2-core)を使うものを洗い出す。分からなければ、開発担当と委託先に今日中に聞く
次の点を委託先に聞く(編集部の補足)。使っているStrutsの版。legacy RESTful action mapperを使っているか。REST pluginを使っているか。Struts 7ならOGNLのallowlistを無効にしていないか。BigDecimalの表示と日時付きメッセージがあるか。7.4.0か6.12.0へ上げる時期
2.5系以前のシステムは、移行の計画を立てる。公式の修正版は出ません
更新できない間は、上の表の回避策を、委託先に確認して適用する。S2-077は、リバースプロキシ側の本文サイズの上限で守る
更新するときは、Version Notesの「Breaking changes」を委託先と読み、動作確認の時間を取る(7.4.0・6.12.0とも、REST pluginの既定のインターセプタースタックに変更があります)
書かれていないこと
次の点は、確かめた資料には書かれていません。この記事でも書きません。
悪用された事例や、攻撃を観測したという報告(NVDのSSVCは exploitation: none)
6.xと7.xの終了予定
BSIが、今回の4件について出した注意情報の有無(確かめられたのは2016年のCVEの注意情報のみ)