Integer Overflow
整数オーバーフロー(Integer Overflow)は、算術結果が型の表現範囲を超えて折り返す現象である。小さすぎるバッファ確保や論理エラーを招きうる。
目的
整数オーバーフローが引き起こすメモリ確保と境界チェックの迂回を理解する。C/C++ と暗号実装でよくある欠陥である。
メカニズム
符号付き整数のオーバーフローは未定義動作(C/C++)であり、符号なし整数は 2^n を法として折り返す。例えば size_t len = a + b は a+b が SIZE_MAX を超えると小さな値に折り返り、malloc(len) が過小確保となり、後続の書き込みがオーバーフローする。
ユースケース
- メモリ確保の安全性
- 暗号実装のオーディット
- 境界チェックの迂回