CyberGlossary

脆弱性

整数オーバーフロー

別称: 整数ラップアラウンド

定義

算術演算の結果が整数型の表現可能範囲を超え、ラップアラウンドや切り詰めがセキュリティ上重大な影響を及ぼすバグ。

整数オーバーフローは、計算結果が整数型の表現できる最大値(または最小値)を超えてラップアラウンド・符号反転・切り詰めが生じる現象です。誤った値がその後バッファサイズ、ループカウンタ、配列インデックス、認可判定などに用いられるとセキュリティ問題となり、バッファオーバーフロー・無限ループ・上限のバイパスを引き起こします。対策としては、検査付き算術(Rust の checked_add、C23 の ckd_*、コンパイラの -ftrapv)、広い型へ拡張してから明示的に範囲チェックして縮める手法、データに合った型選択、徹底したファズテストが挙げられます。画像コーデック、フォントパーサ、カーネルなど多数の高インパクト CVE が整数オーバーフローのチェーンに起因します。

  • CVE-2002-0639(OpenSSH challenge-response):整数オーバーフローによりヒープが破壊。
  • CVE-2018-9568(Android Wi-Fi):802.11 フレーム処理での整数オーバーフロー。

関連用語