Tavis Ormandy vom Google-Sicherheitsteam entdeckte mehrere Sicherheitsprobleme in PCRE, der Perl-kompatiblen Bibliothek für reguläre Ausdrücke, die es Angreifern eventuell ermöglichen, beliebigen Code auszuführen, indem speziell erzeugte reguläre Ausdrücke kompiliert werden.
In Version 7.0 der PCRE-Bibliothek wurde der Compiler für reguläre Ausdrücke stark umgeschrieben und es wurde für unmöglich erachtet, die Sicherheitskorrekturen in Version 7.3 auf die Versionen in Debians Stable- und alte Stable-Distribution (6.7 bzw. 4.5) zurückzuportieren. Deswegen basiert diese Aktualisierung auf Version 7.4 (die die Sicherheitskorrekturen der Version 7.3 sowie mehrere Korrekturen für Regressionen enthält) mit speziellen Patches zur Verbesserung der Kompatibilität mit älteren Versionen. Als Ergebnis muss zusätzliche Sorgfalt erfolgen, wenn diese Aktualisierung angewandt wird.
Das Common Vulnerabilities and Exposures
-Projekt identifiziert die
folgenden Probleme:
Nicht passende \Q\E-Sequenzen mit verwaisten \E-Codes können dazu führen, dass der kompilierte reguläre Ausdruck nicht synchronisiert ist, was zu fehlerhaften Bytecode führen kann, der zu mehreren ausnutzbaren Bedingungen führt.
Mehrere Formen von Zeichenklassen hatten ihre Größen beim ersten Durchlauf fehl berechnet, was zu zu wenig reservierten Speicher führte.
Mehrere Muster der Gestalt \X?\d oder \P{L}?\d im nicht-UTF-8-Modus konnten sich auf einen Teil vor dem Start der Zeichenkette beziehen, was möglicherweise zu einer Informationsenthüllung vom Adressraum oder zu einem Absturz beim Auslesen außerhalb von Grenzen führt.
Eine Anzahl von Routinen kann ausgetrickst werden, nach dem Ende der
Zeichenkette nach nicht paarigen Klammern (runde und eckige) zu suchen,
was zu einer Diensteverweigerung (denial of service
) führt.
Mehrere Integer-Überläufe bei der Verarbeitung von Escape-Sequenzen konnten zu Heap-Überläufen oder Lese- bzw. Schreibvorgängen außerhalb von Grenzen führen.
Mehrere unendliche Schleifen und Heap-Überläufe wurden im Umgang mit \P- und \P{x}-Sequenzen gefunden, wo die Länge dieser nicht standardmäßigen Operationen falsch gehandhabt wurde.
Zeichenklassen die eine einzelne Unicode-Sequenz enthalten, wurden falsch optimiert, was zu einem Heap-Überlauf führte.
Für die alte Stable-Distribution (Sarge) wurden diese Probleme in Version 4.5+7.4-1 behoben.
Für die Stable-Distribution (Etch) wurden diese Probleme in Version 6.7+7.4-2 behoben.
Für die Unstable-Distribution (Sid) wurden diese Probleme in Version 7.3-1 behoben.
MD5-Prüfsummen der aufgeführten Dateien stehen in der ursprünglichen Sicherheitsankündigung zur Verfügung.