• 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-Referenz › CWE-1333: Inefficient Regular Expression Complexity

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.

Ist Ihre IT-Infrastruktur betroffen?

Schwachstellen wie CWE-1333: Inefficient Regular Expression Complexity werden von Angreifern gezielt gesucht — meist automatisiert und ohne Rücksicht darauf, wie groß das betroffene Unternehmen ist. Ob eine solche Lücke bei Ihnen tatsächlich offen steht, lässt sich nur durch Prüfung feststellen:

  • Schwachstellen-Scan — wiederkehrende Prüfung Ihrer Infrastruktur auf bekannte Lücken wie diese
  • Penetrationstest — manuelle Prüfung eigener Software auf Schwachstellen, die kein Werkzeug findet
  • Threat Modeling — Schwachstellenklassen im Entwurf vermeiden, statt sie später zu suchen
Kostenloses Erstgespräch Für mittelständische Unternehmen