• CWE-457: Use of Uninitialized Variable

Der Code verwendet eine Variable, die nicht initialisiert wurde, was zu unvorhersehbaren oder unbeabsichtigten Ergebnissen führen kann.

CWE-457: Use of Uninitialized Variable

CWE ID: 457
Name: Use of Uninitialized Variable

Beschreibung

Der Code verwendet eine Variable, die nicht initialisiert wurde, was zu unvorhersehbaren oder unbeabsichtigten Ergebnissen führen kann.

Erweiterte Beschreibung

In einigen Programmiersprachen wie C und C++ werden Stack-Variablen nicht standardmäßig initialisiert. Sie enthalten in der Regel “junk data” – den Inhalt des Stack-Speichers vor dem Funktionsaufruf. Ein Angreifer kann unter Umständen diese Inhalte kontrollieren oder auslesen. In anderen Sprachen oder unter anderen Bedingungen kann einer nicht explizit initialisierten Variable ein Standardwert zugewiesen werden, der, abhängig von der Logik des Programms, Sicherheitsimplikationen haben kann. Das Vorhandensein einer nicht initialisierten Variable kann zudem auf einen typografischen Fehler im Code hindeuten.

Risikominderungsmaßnahmen

Maßnahme (Implementation)

Effektivität: Unknown
Beschreibung: Weisen Sie allen Variablen einen Anfangswert zu.

Maßnahme (Build and Compilation)

Effektivität: Unknown
Beschreibung: Die meisten Compiler geben eine Warnung aus, wenn Warnungen aktiviert sind und nicht initialisierte Variablen verwendet werden.

Maßnahme (Implementation)

Effektivität: Unknown
Beschreibung: Bei der Verwendung einer Programmiersprache, die keine explizite Variablendeklaration erfordert, sollte die Software in einem Modus ausgeführt oder kompiliert werden, der nicht deklarierte oder unbekannte Variablen meldet. Dies kann auf einen Tippfehler im Variablennamen hindeuten.

Maßnahme (Requirements)

Effektivität: Unknown
Beschreibung: Die Entscheidung könnte getroffen werden, eine Sprache zu verwenden, die nicht anfällig für diese Probleme ist.

Maßnahme (Architecture and Design)

Effektivität: Unknown
Beschreibung: Abmildernde Technologien wie sichere String-Bibliotheken und Container-Abstraktionen könnten eingeführt werden.