• CWE-1333: Inefficient Regular Expression Complexity

Das Produkt verwendet einen regulären Ausdruck mit einer ineffizienten, potenziell exponentiellen Worst-Case-Rechenkomplexität, die übermäßige CPU-Zyklen verbraucht.

CWE-1333: Inefficient Regular Expression Complexity

CWE ID: 1333
Name: Inefficient Regular Expression Complexity

Beschreibung

Das Produkt verwendet einen regulären Ausdruck mit einer ineffizienten, potenziell exponentiellen Worst-Case-Rechenkomplexität, die übermäßige CPU-Zyklen verbraucht.

Erweiterte Beschreibung

Einige reguläre Ausdrucks-Engines verfügen über eine Funktion namens “backtracking”. Wenn ein Token nicht übereinstimmt, “backtrackt” die Engine zu einer Position, die möglicherweise zu einem anderen Token führt, das übereinstimmen kann.

Risikominderungsmaßnahmen

Maßnahme (Architecture and Design)

Effektivität: High
Beschreibung: Verwenden Sie reguläre Ausdrücke, die kein “backtracking” unterstützen, beispielsweise durch Entfernen von verschachtelten Quantifizierer. Notizen: Dies ist eine der wenigen effektiven Lösungen bei der Verwendung von benutzerdefinierten regular expressions.

Maßnahme (System Configuration)

Effektivität: Moderate
Beschreibung: Legen Sie backtracking-Limits in der Konfiguration der regular expression-Implementierung fest, beispielsweise in PHP’s pcre.backtrack_limit. Berücksichtigen Sie zudem Limits für die Ausführungszeit des Prozesses.

Maßnahme (Implementation)

Effektivität: High
Beschreibung: Vermeiden Sie die Verwendung von regular expressions mit nicht vertrauenswürdigen Eingaben. Sollten regular expressions verwendet werden müssen, vermeiden Sie die Verwendung von backtracking in dem Ausdruck.

Maßnahme (Implementation)

Effektivität: Moderate
Beschreibung: Begrenzen Sie die Länge der Eingabe, die der regular expression verarbeitet.