CS.NRE.CHECK.MIGHT
null について適切にチェックされたパスからのオブジェクト参照値は、明示的に、またはそれを null についてチェックせずに逆参照する可能性がある関数を呼び出すことによって、逆参照される場合があります。
脆弱性とリスク
null オブジェクト参照の逆参照は、一部のオペレーティングシステムでのアプリケーションのクラッシュや実行時例外のスローを引き起こす実行時の重大な問題です。
例 1
コピー
public class A {
public void foo() {
A a = new A();
if (a == null)
if (flag)
a.foo();
}
private bool flag;
}
変数 'a' では、Klocwork は 6 行目で指摘レポート (CS.NRE.CHECK.MIGHT) を生成します。変数 'a' は 4 行目で 0 値と比較されるため、5 行目でフラグチェックを行った後、6 行目で逆参照されるときでも、null であることが想定される場合があります。
外部参考資料
セキュリティトレーニング
Secure Code Warrior が提供しているアプリケーションセキュリティトレーニング教材。