Integer Overflow
Ein Integer-Overflow tritt auf, wenn ein arithmetisches Ergebnis den darstellbaren Bereich des Typs überschreitet und umbricht — kann zu zu kleinen Buffer-Allokationen oder Logikfehlern führen.
Zweck
Die durch Integer-Overflow verursachten Speicherzuweisungen und Bounds-Check-Umgehungen verstehen; ein häufiger Defekt in C/C++ und Krypto-Implementierungen.
Mechanismus
Vorzeichenbehafteter Überlauf ist undefiniertes Verhalten (C/C++); vorzeichenlose Integers brechen modulo 2^n um. Beispiel: size_t len = a + b kippt auf einen kleinen Wert, wenn a+b SIZE_MAX überschreitet, sodass malloc(len) zu wenig zuweist und nachfolgende Schreibvorgänge überlaufen.
Anwendungsfälle
- Sicherheit der Speicherzuweisung
- Audit von Krypto-Implementierungen
- Bounds-Check-Umgehung