SV.EXPOSE.MUTABLEFIELD

このエラーは、mutable オブジェクトを参照する public、static、final フィールドがクラスに含まれる場合に検出されます。

脆弱性とリスク

SV.EXPOSE.FIN を参照してください。

Klocwork セキュリティ脆弱性 (SV) チェッカーは、潜在的に危険なデータを生成する呼び出しを特定します。このような呼び出しは安全でないソースと考えられます。ユーザーは攻撃者になる可能性があり、ヒューマンエラーを取り込む可能性があるため、安全でないソースはユーザーが指定した任意のデータである可能性があります。

軽減と防止

この脆弱性は、各クラスの public インターフェイスからの mutable オブジェクトへの参照を削除し、代わりに immutable オブジェクトを使用するか static フィールドの使用を避けることにより緩和できます。

例 1

コピー
    final public static String adminUsers[] = new String[]{"root","toor"};
 
    // ...
    void maliciousUserCode() {
      adminUsers[1]="myself";
    }

SV.EXPOSE.MUTABLEFIELD が 10 行目に対して報告されています。public static final フィールドまたは protected static final フィールドである 'adminUsers' が 'java.lang.String[]' タイプの mutable オブジェクトを参照しています。このオブジェクトは、悪意のあるコードや別のパッケージによる偶然によって変更される可能性があります。