Entry № 608
整数オーバーフロー
整数オーバーフロー とは何ですか?
整数オーバーフロー算術演算の結果が整数型の表現可能範囲を超え、ラップアラウンドや切り詰めがセキュリティ上重大な影響を及ぼすバグ。
整数オーバーフローは、計算結果が整数型の表現できる最大値(または最小値)を超えてラップアラウンド・符号反転・切り詰めが生じる現象です。誤った値がその後バッファサイズ、ループカウンタ、配列インデックス、認可判定などに用いられるとセキュリティ問題となり、バッファオーバーフロー・無限ループ・上限のバイパスを引き起こします。対策としては、検査付き算術(Rust の checked_add、C23 の ckd_*、コンパイラの -ftrapv)、広い型へ拡張してから明示的に範囲チェックして縮める手法、データに合った型選択、徹底したファズテストが挙げられます。画像コーデック、フォントパーサ、カーネルなど多数の高インパクト CVE が整数オーバーフローのチェーンに起因します。
● 例
- 01
CVE-2002-0639(OpenSSH challenge-response):整数オーバーフローによりヒープが破壊。
- 02
CVE-2018-9568(Android Wi-Fi):802.11 フレーム処理での整数オーバーフロー。
● よくある質問
整数オーバーフロー とは何ですか?
算術演算の結果が整数型の表現可能範囲を超え、ラップアラウンドや切り詰めがセキュリティ上重大な影響を及ぼすバグ。 サイバーセキュリティの 脆弱性 カテゴリに属します。
整数オーバーフロー とはどういう意味ですか?
算術演算の結果が整数型の表現可能範囲を超え、ラップアラウンドや切り詰めがセキュリティ上重大な影響を及ぼすバグ。
整数オーバーフロー からどのように防御しますか?
整数オーバーフロー に対する防御は通常、上記の定義で述べたとおり、技術的統制と運用上の実践を組み合わせます。
整数オーバーフロー の別名は何ですか?
一般的な別名: 整数ラップアラウンド。