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 オブジェクトを参照しています。このオブジェクトは、悪意のあるコードや別のパッケージによる偶然によって変更される可能性があります。