Entry № 842
ヌルポインタ参照
ヌルポインタ参照 とは何ですか?
ヌルポインタ参照値が null(あるいは無効)であるポインタを介して読み書きするバグ。通常はクラッシュを引き起こし、時に悪用も可能となる。
ヌルポインタ参照(CWE-476)は、未初期化のポインタ、free 後に NULL に設定されたポインタ、戻り値を検査せずに失敗を見逃した関数のポインタなどを参照することで発生します。多くの現代システムではセグメンテーション違反となりプロセスが落ちるため、DoS となります。一部の制約された環境(0 番地をマップできた古い Linux カーネル、MMU を持たない組込み機器、特定の JIT コンパイラ)では、ヌル参照をメモリ破壊プリミティブへ昇格できることがあります。防御策には厳密なヌルチェック、言語機能(Optional/Maybe、非 null 参照)、静的解析、サニタイザを用いたテスト、低位アドレスのマップを禁じる mmap_min_addr などの OS 制御があります。
● 例
- 01
オプションのヘッダ欠落でクラッシュする Web サーバ。
- 02
mmap_min_addr が 0 のときに悪用された Linux カーネルのヌル参照不具合。
● よくある質問
ヌルポインタ参照 とは何ですか?
値が null(あるいは無効)であるポインタを介して読み書きするバグ。通常はクラッシュを引き起こし、時に悪用も可能となる。 サイバーセキュリティの 脆弱性 カテゴリに属します。
ヌルポインタ参照 とはどういう意味ですか?
値が null(あるいは無効)であるポインタを介して読み書きするバグ。通常はクラッシュを引き起こし、時に悪用も可能となる。
ヌルポインタ参照 からどのように防御しますか?
ヌルポインタ参照 に対する防御は通常、上記の定義で述べたとおり、技術的統制と運用上の実践を組み合わせます。
ヌルポインタ参照 の別名は何ですか?
一般的な別名: null 参照。