CS.NRE.CONST.CALL

null オブジェクト参照の定数値は、それを null についてチェックせずに逆参照する可能性がある関数に渡されます。

脆弱性とリスク

null オブジェクト参照の逆参照は、一部のオペレーティングシステムでのアプリケーションのクラッシュや実行時例外のスローを引き起こす実行時の重大な問題です。

例 1

コピー
                      class Param {
                          public int par1() {
                              return 0;
                          }
                      }
                      class NPD3 {
                          public void foo() {
                              foo2(null);
                          }
                         public void foo2(Param param) {
                             if (flag)
                                 return;
                             param.par1();
                         }
                         private bool flag;
                     }

Klocwork は 8 行目で指摘レポート (CS.NRE.CONST.CALL) を生成します。定数 null ポインター値は 8 行目で引数 1 として (逆参照する可能性がある) 関数 'foo2' に渡されます。

セキュリティトレーニング

Secure Code Warrior が提供しているアプリケーションセキュリティトレーニング教材。