Apache Strutsの脆弱性CVE-2016-3081|S2-032のKEV追加と確認方法・移行先
CVE-2016-3081・GHSA-8c6j-ffmf-q6vmJavaの
- 対象は
2.3.20〜 2.3.28 (2.3.20.3・2.3.24.3を 除く)のうち struts.enable.DynamicMethodInvocationをtrueにしている 場合です。 2.3系の 既定値は falseです。[1][7] - KEVへの
追加は 2026年10月8日で、 対応の 期限は 10月11日でした。 今後30日に 悪用される 見込みの 推定 (EPSS)は 96.5%です (11月8日時点)。[5][6] - 修正版は
2.3.20.3・2.3.24.3・2.3.28.1ですが、 2.3系は 2019年9月12日に サポートが 終わり、 その後の 脆弱性は この 系列で 直っていません。[1][9][11] - アクセスログで、
名前が method:で始まる パラメータを 含む リクエストを 探し、 更新前に 攻撃を 受けていないかを 確かめます。[1][3]
01S2-032で起きること
Struts 2には、method:で
提供元の
DMIが
提供元の
Apache Struts 2.3.20〜2.3.28
出典
02Strutsのアプリが対象になる条件
- 版:
提供元の 告知では 2.3.20〜 2.3.28 (2.3.20.3と 2.3.24.3を 除く)。 NVDと GitHub Advisoryは 2.3.19からと しています。[1][3][4] - 設定:
DMIが 有効なこと。 2.3.20・2.3.28の default.propertiesでは struts.enable.DynamicMethodInvocation = falseが 既定で、 struts.xmlやstruts.propertiesで trueにした アプリが 対象です。[1][7] - 経路:
Strutsの アクション ( .actionなど)に、外から リクエストが 届くこと。 認証の 有無は 条件に ありません。[1][3]
2.5系・
03悪用の状況
米CISAは
公表は
2016年の
公表、
2016年4月19日
2016年4月26日
2019年9月12日
2026年10月8日
11月8日
出典
04攻撃を受けていないかの確認
KEVにmethod:で
- Webサーバー・
Tomcatの アクセスログで、 クエリ文字列に method:(URLエンコードでは method%3A)を含む リクエストを 探します。 ターミナルgrep -i -E "method(:|%3A)" /var/log/httpd/access_log* $CATALINA_BASE/logs/localhost_access_log* - POSTの
本文は アクセスログに 残らないことが 多いので、 WAFや ロードバランサーに 本文の 記録が あれば 同じ 文字列を 探します。 - アプリの
実行ユーザーで 起動した 見覚えの ない プロセス、 Webアプリの 配置先 ( webappsなど)に増えた JSPなどの ファイル、 見覚えの ない 宛先への 通信が ないかを 確かめます。 - 痕跡が
見つかった 場合は、 ログと サーバーの 状態を 保全し、 専門の 窓口に 相談します。
05Strutsの対象の版と推奨する版
推奨する
| 系列 | この | 推奨する | 補足 |
|---|---|---|---|
| 2.3系 | 2.3.20〜 | 2.3.20.3・2.3.24.3・2.3.28.1で | 2019年9月12日に |
| 2.5系 | 範囲外 | 6系・ | 2023年10月30日に |
| 6系 | 範囲外 | 6.8.0以上 | 2025年12月公表の |
| 7系 | 範囲外 | 7.1.1以上 | Java 17以上と |
2.3系の
2.3系は
系列ごとに、
出典
06Strutsの版と設定を確かめて上げる手順
ソースの
ある アプリは、 依存関係から struts2-coreの版を 確かめます。 Gradleでは ./gradlew dependencyInsight --dependency struts2-coreです。ターミナルmvn dependency:tree -Dincludes=org.apache.struts:struts2-core配置済みの
WARしか 無い 場合は、 WEB-INF/libのJARの 名前で 版を 確かめます。 ターミナルfind $CATALINA_BASE/webapps -name "struts2-core-*.jar"DMIを
有効に しているかを 確かめます。 trueの行が あれば 対象の 設定です。[7][8] ターミナルgrep -rn "DynamicMethodInvocation" src/main/resources WEB-INF/classes6系か
7系に 上げます。 pom.xmlの版を 変え、 テストで 動作を 確かめます。 7系では Java 17以上と、 Jakarta Servlet 6以上に 対応した サーブレットコンテナが 必要です。[13] pom.xml<dependency> <groupId>org.apache.struts</groupId> <artifactId>struts2-core</artifactId> <version>7.4.0</version> </dependency>ビルド
して 配置し直した あと、 配置先の WEB-INF/libに古い struts2-coreのJARが 残っていないかを、 手順2の コマンドで 確かめます。



07すぐ上げられないとき
提供元のActionMapperをstruts.xml
<constant name="struts.enable.DynamicMethodInvocation" value="false" />DMIでmethodmethod:で
08サポートが終わった2.3系が残っている場合
よくある質問
2016年の脆弱性が、なぜ今KEVに載ったのですか?
KEVの
出典・参考資料
- Apache Struts
公式: 2016-04-19 /S2-032 (CVE-2016-3081) 対象2.3.20〜 2.3.28 (2.3.20.3・2.3.24.3を 除く)、 DMIと method:の 条件、 深刻度 Important、 修正版、 DMIの 無効化と 独自 ActionMapperの 回避策 - Apache Struts
公式: 2016-04-19 /Announcements 2016 2.3.28.1・2.3.20.3・2.3.24.3の 公開日と S2-032の 修正 - NVD:CVE-2016-30812016-04-26 /
対象2.3.19〜 2.3.20.2・2.3.21〜 2.3.24.1・2.3.25〜 2.3.28、 CVSS 3.1 8.1 (NVD)、 KEVへの 追加日 - GitHub Advisory Database:GHSA-8c6j-ffmf-q6vm2022-05-14 /
Maven struts2-core の 影響範囲と 修正版、 Exploit-DB・ Metasploitの 参照 - 米CISA:
Known Exploited Vulnerabilities Catalog 2026-10-08 /(CVE-2016-3081) KEVへの 追加日、 対応の 期限10月11日、 フォレンジックの トリアージ要件の 印 - FIRST:EPSS(CVE-2016-3081)2026-11-08 /
EPSS 96.5%、 上位0.2% - Apache Struts:
2.3.28の 2016-03-18 /default.properties struts.enable.DynamicMethodInvocationの 既定値false - Apache Struts
公式: 2026-11-09 /Action Configuration (Dynamic Method Invocation) DMIの 仕組み、 method:の パラメータ、 無効に する 設定 - Apache Struts
公式: 2026-11-09 /End-of-Life versions Struts 1・2.3系・ 2.5系の サポート終了日、 移行の 勧めと 延長サポート - Apache Struts
公式: 2026-11-09 /Releases 7.4.0が 推奨の GA版、 6.11.0などの 公開日 - GitHub Advisory Database:GHSA-xx7v-hqxh-cjr9(CVE-2025-64775)2025-12-01 /
2.3.37以前・ 2.5.33以前に 修正版の 記載が ないこと、 6.8.0・7.1.1で 修正 - GitHub Advisory Database:GHSA-qcfc-hmrc-59x7(CVE-2025-68493)2026-01-11 /
2.3系・ 2.5系に 修正版の 記載が ないこと、 6.1.1で 修正 - Apache Struts
公式: 2026-11-09 /Struts 6.x.x to 7.x.x migration 7系は Java 17以上と Jakarta Servlet 6以上が 必要、 パッケージの 移動 - Maven Central:org.apache.struts:struts2-core2026-11-09 /
6.11.0・7.4.0などの 公開済みの 版
あわせて読みたい記事
Apache Tomcatの脆弱性8件(2026年10月)|対応と系列ごとの修正版
Apache Tomcatで
snappy-javaの脆弱性CVE-2026-93451|Kafka・Sparkでの確認方法と修正版
Java向けの

SASTとSCAの違い・使い分け|自動検査の範囲と異常系・回帰試験
SASTと