Zum Inhalt springen
uencoder

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

Verwandte Tools

References