• CWE-777: Regular Expression without Anchors

Das Produkt verwendet einen regulären Ausdruck zur Neutralisierung, dieser ist jedoch nicht anchored und könnte so bösartigen oder fehlerhaften Daten das Eindringen ermöglichen.

CWE-777: Regular Expression without Anchors

CWE ID: 777
Name: Regular Expression without Anchors

Beschreibung

Das Produkt verwendet einen regulären Ausdruck zur Neutralisierung, dieser ist jedoch nicht anchored und könnte so bösartigen oder fehlerhaften Daten das Eindringen ermöglichen.

Erweiterte Beschreibung

Bei Aufgaben wie der Validierung anhand einer Zulassungsliste (allowlist) wird die Daten geprüft und gegebenenfalls modifiziert, um sicherzustellen, dass sie wohlgeformt ist und einer Liste sicherer Werte entspricht. Wenn der reguläre Ausdruck nicht anchored ist, können bösartige oder fehlerhafte Daten vor oder nach jeder Zeichenkette, die dem regulären Ausdruck entspricht, eingeschleust werden. Die Art der erlaubten bösartigen Daten hängt vom Kontext der Anwendung und den ausgelassenen anchors im regulären Ausdruck ab.

Risikominderungsmaßnahmen

Maßnahme (Implementation)

Effektivität: Unknown
Beschreibung: Es ist entscheidend, sowohl zu verstehen, was ein regulärer Ausdruck abgleicht und was er nicht abgleicht. Das Ankern der Enden des Ausdrucks ermöglicht es dem Programmierer, eine allowlist streng auf den Text zu beschränken, der vom regulären Ausdruck abgeglichen wird. Stellen Sie sicher, dass Sie bei der Verwendung eines Pakets, das standardmäßig nur eine Zeile abgleicht, die Möglichkeit haben, mehrzeilige Eingaben abzugleichen, falls erforderlich.

Detaillierter Hintergrund

  • Reguläre Ausdrücke werden typischerweise verwendet, um ein Muster in Text abzugleichen. Anchors werden in regulären Ausdrücken verwendet, um anzugeben, wo das Muster abgleichen soll: am Anfang, am Ende oder an beiden Stellen (der gesamten Eingabe).