SV.STRUTS.VER

Struts バージョン: アップグレード

SV.STRUTS.VER チェッカーは、プロジェクトが潜在的なリモートコード実行の脆弱性がない Struts バージョンを使用していることを検証します。

脆弱性とリスク

Apache Struts バージョン 2.3.x (2.3.32 以前) と 2.5.x (2.5.10.1 以前) は、ファイルアップロードの試行時に誤った例外処理とエラーメッセージ生成を行います。この脆弱性は、リモート攻撃者に任意コマンドの実行を許してしまいます。

軽減と防止

より新しいバージョンの Struts (2.5.12 以降) に更新します。

脆弱コード例

コピー
 import com.opensymphony.xwork2.Action;
 public class LoginAction implements Action {
    @Override
    public String execute() {
       return "SUCCESS";
    }
 }

Klocwork は、3 行目で「脆弱な Apache Structs バージョンがプロジェクトで使用されている」という SV.STRUTS.VER 欠陥を報告します。2.5.10.1 以前の Apache Struts バージョンがプロジェクトに使用されていると、Klocwork はエラーを報告します。

修正コード例

コピー
 import com.opensymphony.xwork2.Action;
 public class LoginAction implements Action {
     @Override
     public String execute() {
         return "SUCCESS";
     }
  }

準拠バージョンの Apache Struts (バージョン 2.5.12 以降) に更新すると、Klocwork は 3 行目でもはや欠陥を報告しなくなります。