Apache Struts 2 RESTプラグインにおける、@StrutsParameterの制限が@JsonAnySetterに適用されない問題
最終確認日: 2026-10-29
この発表の要点
- Apache Struts 2 バージョン7.2.1から7.3.0が対象とされ、@JsonAnySetterに対する@StrutsParameterの認可処理が行われない問題があります。
- 問題は@StrutsParameterが有効化され、RESTボディからバインドされるActionまたはモデルクラスで@JsonAnySetterを宣言している場合に発生すると記載されています。
- 開発者はバージョン7.4.0およびそれ以降へのアップデートを案内しており、そのうえでstruts.rest.anySetter.requireAnnotations=trueの設定と@StrutsParameter(allowDynamicKeys = true)の付与を求めています。
企業・自治体への影響
Apache Struts 2を利用してRESTによるJSON・XMLのデシリアライズを行うシステムを保有する企業・自治体に影響があります。特にソフトウェア開発、情報システム、Webアプリケーション運用を担う部門が関係します。対象バージョンの利用状況と、@JsonAnySetterの使用有無の確認が必要です。
対応すべきこと
- 自社システムでApache Struts 2を利用しているか、またバージョンが7.2.1から7.3.0に該当するかを確認する
- 開発者の案内に従い7.4.0以降へのアップデート計画を立てる
- アップデートまでの間は、REST用ActionやModelクラスで@JsonAnySetterを用いない、または値を格納する前にアプリケーション側で検証する対応を検討する
- 関係部門(情シス・開発部門)へ本件を共有し、対応状況を管理する
対象部門: 情シス 経営者
対応期限:速やかに確認
基本データ
| 企業・団体 | JPCERT/CC・IPA(JVN) |
|---|---|
| 業界 | IT・ソフトウェア |
| 発表日 | 2026-10-29 |
| 分類 | サイバーセキュリティ |
発表された内容
公開日:2026/10/29 最終更新日:2026/10/29
JVN#82782759
Apache Struts 2 RESTプラグインにおける、@StrutsParameterの制限が@JsonAnySetterに適用されない問題
The Apache Software Foundationが提供するApache Struts 2のRESTプラグインには、Jacksonの@JsonAnySetterが指定されたフィールドやメソッドに対して@StrutsParameterの制限が行われない問題が存在します。
Apache Struts 2 バージョン7.2.1から7.3.0
Apache Struts 2 RESTプラグインに含まれるParameterAuthorizingModuleは、JSONやXMLのリクエストボディからオブジェクトへのデシリアライズを行う際に、@StrutsParameterの指定を参照して、許可されていないパラメータがセットされないように検証・ブロックを行います。また、RESTプラグインはデシリアライズを行うエンジンとしてJacksonを内包しています。Jacksonには、動的キーを受け取りマッピングを行う@JsonAnySetterアノテーションという機能があります。
このParameterAuthorizingModuleには、@JsonAnySetterが指定されたフィールドやメソッドに対して、上記の認可処理(検証・ブロック)が行われない問題が存在します。
この問題は、@StrutsParameterが有効化されており(struts.parameters.requireAnnotations=true)、アプリケーションがRESTリクエストのボディからバインドされるアクションまたはモデルクラスにおいて@JsonAnySetterを宣言している場合にのみ発生します。
@JsonAnySetterが指定されたメンバーへの入力値に対して@StrutsParameterによる認可チェックが行われず、データの改ざんにつながる可能性があります。
アップデートする
開発者が提供する情報をもとに、バージョン7.4.0およびそれ以降の最新版にアップデートしてください。
そのうえで、struts.rest.anySetter.requireAnnotations=trueを設定し、any-setterとして利用する各メソッドに @StrutsParameter(allowDynamicKeys = true)アノテーションを付与してください。 こうすることで、アノテーションが付与されていないany-setterには、値が設定されなくなります。
ワークアラウンドを実施する
RESTのパラメータが注入されるActionやModelクラスでは@JsonAnySetterアノテーションを用いない
@JsonAnySetterが必要な場合は、値を格納する前にアプリケーション側で検証する
ベンダ
リンク
The Apache Software Foundation
[WW-5712] ParameterAuthorizingModule does not wrap the Jackson any-setter in the REST plugin
StrutsParameter Annotation
この情報は、情報セキュリティ早期警戒パートナーシップに基づき下記の方がIPAに報告しました。
報告者:三井物産セキュアディレクション株式会社 小河哲之 氏
本製品の開発者は、上記の方から報告を受けるより前にDarren Carreras, GitHub: carrerasdarren-cell 氏から報告を受け、対応を進めました。
JPCERT/CCは開発者との調整を行い、JVN公表に至りました。
JPCERT 緊急報告
JPCERT REPORT
CERT Advisory
CPNI Advisory
TRnotes
CVE
JVN iPedia
JVN
HOME
JVNとは
脆弱性レポートの読み方
脆弱性レポート一覧
VN_JP
VN_JP(連絡不能)
VN_VU
VN_TA
TRnotes
JVN iPedia
MyJVN
JVNJS/RSS
ベンダ情報一覧
連絡不能開発者一覧
脆弱性情報の届出
お問合せ先
Copyright (c) 2000-2026 JPCERT/CC and IPA. All rights reserved.
出典: jvn@jvn.jp
URL: https://jvn.jp/jp/JVN82782759/
時系列
- 2026-10-29 JVN#82782759として公開(公開日:2026/10/29)
- 2026-10-29 JVNにて最終更新(最終更新日:2026/10/29)
主な数値
| 影響を受けるバージョン(開始) | 7.2.1バージョン |
|---|---|
| 影響を受けるバージョン(終了) | 7.3.0バージョン |
| 対応版(推奨アップデート先) | 7.4.0バージョン |
この事例から確認すべきポイント
本件は、Apache Struts 2のRESTプラグインに含まれるParameterAuthorizingModuleが、Jacksonの@JsonAnySetterが指定されたフィールドやメソッドに対して@StrutsParameterによる認可処理を行わないという脆弱性として公表されています。原文によれば、この問題は@StrutsParameterが有効化されており(struts.parameters.requireAnnotations=true)、RESTリクエストのボディからバインドされるアクションまたはモデルクラスで@JsonAnySetterを宣言している場合にのみ発生するとされています。影響としては、データの改ざんにつながる可能性が記載されています。実務上は、まず自社がApache Struts 2を利用しているか、そのバージョンが7.2.1から7.3.0の範囲に該当するかを確認し、該当する場合は開発者の案内に従い7.4.0以降への更新を検討することが重要です。加えて、回避策として、REST用のActionやModelクラスで@JsonAnySetterを用いない、必要な場合は値を格納する前にアプリケーション側で検証する、といった対応が示されています。現時点で取得できた本文からは、影響範囲の詳細な件数や実際の被害状況は確認できませんでした。詳細は公式出典をご確認ください。
公式出典
更新履歴
公開日: 2026-10-29 / 最終確認: 2026-10-29
執筆・確認主体
この記事は、上記の公式出典を一次情報として PRaze編集部(株式会社スキルマーク)が構造化・要約したものです。 要約と分類の生成にはAIを使用しています。
数値・日付・組織名・金額は公式発表の原文から転記しており、 原文に記載のない事項を補って書くことはしていません。 内容の正確性は公式出典をご確認ください。
編集・公開: PRaze編集部(株式会社スキルマーク) / 出典確認日: 2026-10-29
関連事例
- BrotliのC言語実装における境界外書き込みの脆弱性(CVE-2026-111497)
- 注意喚起: BrotliのC言語実装における境界外書き込みの脆弱性(CVE-2026-111497)に関する注意喚起 (公開)
- Yamaha LAN Monitor for WindowsのインストーラにおけるDLL読み込みに関する脆弱性
- ヤマハ製YMS-VPN8およびYMS-VPN8-CPにおける引用符で囲まれていないファイルパスの脆弱性
- Weekly Report: JPCERT/CCが2026年7月から9月分の「JPCERT/CC 四半期レポート」を公開
自社のプレスリリースをPRazeに掲載しませんか?
無料でプレスリリースを掲載する