コンテンツにスキップ

Out-of-Bounds Write (境界外書き込み)

ルール ID

MI109

定義

ソフトウェアは、意図されたバッファーの終端を越えたデータ、または先頭より前のデータを書き込んでいます。

サンプル

次のコードは、CWE の該当コード サンプルの 1 つです。

1
2
3
4
5
6
7
8
int id_sequence[3];

/* Populate the id array. */

id_sequence[0] = 123;
id_sequence[1] = 234;
id_sequence[2] = 345;
id_sequence[3] = 456;

次のコードは、配列に 4 つの識別番号を書き込もうとします。配列は 3 つの要素だけを格納できるよう割り当てられているため、有効なインデックスは 0 から 2 です。そのため、id_sequence[3] への代入は境界外です。

参考資料

  • Common Weakness Enumeration: CWE-121
  • Common Weakness Enumeration: CWE-122
  • Common Weakness Enumeration: CWE-787
  • Common Weakness Enumeration: CWE-913