Integer Overflow

Wprowadzenie

Integer Overflow (Przepełnienie liczby całkowitej) występuje, gdy wynik operacji arytmetycznej na typie całkowitoliczbowym przekracza jego maksymalną lub minimalną wartość, co powoduje zawinięcie wyniku (wrap-around). Jest to jedna z najstarszych i najbardziej niebezpiecznych klas podatności w programowaniu.

Jak działa Integer Overflow

Dla 32-bitowego typu int (zakres -2 147 483 648 do 2 147 483 647):

  • 2 147 483 647 + 1 = -2 147 483 648 (signed overflow)
  • 4 294 967 295 + 1 = 0 (unsigned overflow)

Główne rodzaje przepełnienia

  • Signed Integer Overflow – zachowanie undefined w C/C++
  • Unsigned Integer Overflow – wrap-around (zdefiniowane w standardzie)
  • Integer Underflow – przekroczenie wartości minimalnej w dół
  • Truncation Overflow – utrata precyzji przy konwersji typów

Zagrożenia Integer Overflow

  • Ataki typu buffer overflow i heap corruption
  • Omijanie mechanizmów bezpieczeństwa (np. size checks)
  • Błędy logiczne w algorytmach (liczniki, indeksy tablic)
  • Podatności w smart contractach (np. overflow w tokenach ERC-20)
  • Błędy w bibliotekach AI i obliczeniach numerycznych

Integer Overflow w kontekście AI

W systemach AI przepełnienie może wystąpić przy:

  • Obliczeniach indeksów w tensorach i macierzach
  • Implementacji algorytmów uczenia (np. liczniki batchy)
  • Przetwarzaniu dużych zbiorów danych
  • Operacjach na embeddingach i tokenach
  • Bibliotekach niskopoziomowych (CUDA, cuBLAS, PyTorch C++ extensions)

Zapobieganie Integer Overflow (2026)

  • Używanie bezpiecznych typów: uint64_t, size_t, BigInteger
  • Sprawdzanie przed operacją (checked arithmetic)
  • Języki z wbudowaną ochroną: Rust (panic na overflow w trybie debug)
  • Kompilatory: GCC/Clang z flagami -ftrapv, -fsanitize=integer
  • Biblioteki: SafeInt (C++), BigInt w JavaScript/Python
  • Static Analysis i fuzzing (AFL++, libFuzzer)

Powiązane pojęcia

Buffer Overflow • Undefined Behavior • Integer Underflow • Safe Arithmetic • Fuzzing • Smart Contract Security • CWE-190 • Rust Safety • Sanitizers

Dodano: 21.05.2026