Buffer over-read とは

コンピュータのセキュリティとプログラミングでは、バッファオーバーリードは、プログラムがバッファからデータを読み取っている間にバッファの境界をオーバーランし、隣接するメモリを読み取る(または読み取ろうとする)異常です。これはメモリの安全性に違反する特殊なケースです。
Heartbledバグと同様に、アクセス不能ではないメモリの部分を読み取るための境界チェックの欠如を悪用するように設計された悪意を持って作成された入力によって、バッファオーバーリードが引き起こされる可能性があります。また、プログラミングエラーだけでも発生する可能性があります。バッファのオーバーリードは、メモリアクセスエラー、不正な結果、クラッシュ、システムセキュリティの侵害など、プログラムの動作が異常になる可能性があります。したがって、これらは多くのソフトウェアの脆弱性の基礎となり、悪意を持って特権情報にアクセスすることができます。
一般的にバッファオーバリードに関連するプログラミング言語には、仮想メモリの任意の部分のデータにアクセスするためのポインタの使用に対する組み込みの保護を提供せず、メモリブロックからの読み込みデータが安全であることを自動的にチェックしないCおよびC ++ ;それぞれの例では、配列に含まれるよりも多くの要素を読み込もうとしているか、末尾の終端文字をNULL終端文字列に追加できません。境界チェックは、バッファの読み込みを防ぎますが、ファズテストはそれらを検出するのに役立ちます。