メインコンテンツへスキップ
← 記事一覧へ
セキュリティニュース速報JVNの調整公表とApache Strutsの公式文書

Struts 2 RESTに入力チェックの抜け―7.4.0以降への更新と設定変更が必要

動的な入力名を受け取る@JsonAnySetterが認可の対象外になる問題です。新しいチェックは初期状態で無効のため、更新だけで対応を終えないでください。

JVNの公表日:2026-10-29 / 公開: / 更新: / 最終確認:
Codingholic 編集部 · 約2分

JVNは2026年10月29日、Apache Struts 2のRESTプラグインで、特定の入力に認可チェックが適用されない問題を公表しました。対象は7.2.1から7.3.0で、意図していないデータの変更につながる可能性があります。

StrutsはJSONやXMLの入力をアプリケーションのオブジェクトへ取り込む際、@StrutsParameterで許可した項目かを検証します。しかし、未知のキーも受け取るJacksonの@JsonAnySetterを使った経路には、この検証が及びません。注釈を必須にする設定が有効で、REST入力を受けるクラスにany-setterを宣言している場合が対象です。

対応は7.4.0以降への更新に加え、struts.rest.anySetter.requireAnnotations=trueを設定することです。公式文書では互換性のため初期値はfalseとされています。既存のstruts.parameters.requireAnnotationsも有効にし、許可するメソッドやフィールドに@StrutsParameter(allowDynamicKeys = true)を指定します。

すぐ更新できない場合、JVNは該当クラスで@JsonAnySetterを使わない方法、または値の保存前にアプリ側で検証する方法を案内しています。開発者は利用箇所を調べ、許可する入力が通り、許可しない入力が保存されないことを確認してください。今回確認した公表資料にCVSS評価や実悪用の記載はありません。

出典と編集について

JVN / Apache Software Foundation:JVN#82782759:Apache Struts 2 RESTプラグインの@JsonAnySetterに対する制限不足 ↗

Apache Struts:Jackson any-settersの設定と制限 ↗

本記事は公表資料に基づく速報です。判明した範囲を記載しており、続報で内容が変わる場合があります。