Skip to content
Vol. 1 · Ed. 2026
CyberGlossary
Entry № 544

整数アンダーフロー

整数アンダーフロー とは何ですか?

整数アンダーフロー算術上の欠陥(CWE-191)。符号なし整数を 0 未満まで減算すると巨大な値に巻き戻り、過大なアロケーションやバッファ越境を引き起こす。


整数アンダーフローは、符号なし整数が 0 を下回るか、符号付き演算が INT_MIN を越えたときに結果が非常に大きな正の値へ巻き戻る現象です。典型的なパターンは len = header_len - prefix_len で、prefix_len が攻撃者制御の場合、計算結果の巨大な len が境界チェックを潜り抜けてヒープ/スタックバッファオーバーフローや境界外読み取りを誘発します。実例には libcurl の CVE-2018-1000005、パケット長の size_t 演算がアンダーフローした多数のカーネル脆弱性などがあります。対策は明示比較を伴う符号付き演算、検査付き減算(__builtin_sub_overflow、std::safe_int)、Rust デバッグや Swift などの言語レベルのオーバーフロートラップ、UBSan を併用したファジング、厳格な入力検証です。

  1. 01

    total < header_len のとき len = total - header_len が 0xFFFFFFFF に巻き戻り、memcpy のサイズに使われる。

  2. 02

    Linux カーネル CVE-2019-11815:残り長の減算がアンダーフローして UAF を誘発する。

よくある質問

整数アンダーフロー とは何ですか?

算術上の欠陥(CWE-191)。符号なし整数を 0 未満まで減算すると巨大な値に巻き戻り、過大なアロケーションやバッファ越境を引き起こす。 サイバーセキュリティの 攻撃と脅威 カテゴリに属します。

整数アンダーフロー とはどういう意味ですか?

算術上の欠陥(CWE-191)。符号なし整数を 0 未満まで減算すると巨大な値に巻き戻り、過大なアロケーションやバッファ越境を引き起こす。

整数アンダーフロー はどのように機能しますか?

整数アンダーフローは、符号なし整数が 0 を下回るか、符号付き演算が INT_MIN を越えたときに結果が非常に大きな正の値へ巻き戻る現象です。典型的なパターンは len = header_len - prefix_len で、prefix_len が攻撃者制御の場合、計算結果の巨大な len が境界チェックを潜り抜けてヒープ/スタックバッファオーバーフローや境界外読み取りを誘発します。実例には libcurl の CVE-2018-1000005、パケット長の size_t 演算がアンダーフローした多数のカーネル脆弱性などがあります。対策は明示比較を伴う符号付き演算、検査付き減算(__builtin_sub_overflow、std::safe_int)、Rust デバッグや Swift などの言語レベルのオーバーフロートラップ、UBSan を併用したファジング、厳格な入力検証です。

整数アンダーフロー からどのように防御しますか?

整数アンダーフロー に対する防御は通常、上記の定義で述べたとおり、技術的統制と運用上の実践を組み合わせます。

整数アンダーフロー の別名は何ですか?

一般的な別名: 符号なしアンダーフロー, CWE-191。

関連用語