コンテンツへスキップ
uencoder

Integer Overflow

整数オーバーフロー(Integer Overflow)は、算術結果が型の表現範囲を超えて折り返す現象である。小さすぎるバッファ確保や論理エラーを招きうる。

目的

整数オーバーフローが引き起こすメモリ確保と境界チェックの迂回を理解する。C/C++ と暗号実装でよくある欠陥である。

メカニズム

符号付き整数のオーバーフローは未定義動作(C/C++)であり、符号なし整数は 2^n を法として折り返す。例えば size_t len = a + b は a+b が SIZE_MAX を超えると小さな値に折り返り、malloc(len) が過小確保となり、後続の書き込みがオーバーフローする。

ユースケース

  • メモリ確保の安全性
  • 暗号実装のオーディット
  • 境界チェックの迂回

関連ツール

References