SV.SERIAL.NOREAD

SV.SERIAL.NOREAD は、クラスが 'java.io.Serializable' インターフェイスを直接的または間接的に実装しているにもかかわらず、'private void readObject(java.io.ObjectInputStream in) throws IOException, ClassNotFoundException' メソッドを定義していない場合に報告されます。

脆弱性とリスク

クラスが正しいシグネチャの 'readObject' メソッドを実装していない場合、'defaultReadObject' によって指定されたデフォルトのシリアライズが使用されます。したがって、このクラスはデシリアライズから保護されず、攻撃者がクラスのインスタンスをデシリアライズするバイトシーケンスを作成できるようになります。

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

軽減と防止

'private void readObject(java.io.ObjectInputStream in) throws IOException, ClassNotFoundException' メソッドを実装します。

例 1

コピー
  public class SV_SERIAL_Sample_1 implements Serializable {
  
       public static void main(String[] args)
       {
               System.out.println("Hello World!");
      }
 }

SV.SERIAL.NOREAD が 5 行目のクラス 'SV_SERIAL_Sample_1' の宣言に対して報告されています。