DFN-CERT-2016-0520 Perl-Compatible-Regular-Expression (PCRE) Bibliothek, Perl-Compatible-Regular-Expression (PCRE) Bibliothek 2: Mehrere Schwachstellen ermöglichen u.a. das Ausführen beliebigen Programmcodes [Linux]

Liebe Kolleginnen und Kollegen,

bitte beachten Sie die folgende Sicherheitsmeldung.

Betroffene Software:

Perl-Compatible-Regular-Expression (PCRE) Bibliothek >= 8.00
Perl-Compatible-Regular-Expression (PCRE) Bibliothek <= 8.38 Perl-Compatible-Regular-Expression (PCRE) Bibliothek 2 10.21 Betroffene Plattformen: Canonical Ubuntu Linux 12.04 Lts Canonical Ubuntu Linux 14.04 Lts Canonical Ubuntu Linux 15.10 Mehrere Schwachstellen in PCRE und PCRE2 ermöglichen einem entfernten, nicht authentifizierten Angreifer das Ausführen beliebigen Programmcodes, das Ausspähen von Informationen, das Durchführen verschiedener Denial-of-Service-Angriffe, sowie weitere nicht spezifizierte Angriffe. Ubuntu stellt für die Distributionen Ubuntu 15.10, Ubuntu 14.04 LTS und Ubuntu 12.04 LTS Sicherheitsupdates in Form aktualisierter libpcre3-Pakete bereit. Patch: Ubuntu Security Notice USN-2943-1 http://www.ubuntu.com/usn/usn-2943-1/

CVE-2016-3191: Schwachstelle in PCRE und PCRE2 ermöglicht Ausführen
beliebigen Programmcodes

Es existiert eine Schwachstelle in der Funktion ‘compile_branch’ in
pcre_compile.c in PCRE und PCRE2, aufgrund einer fehlerhaften Behandlung von
Mustern, die ein (*ACCEPT) -Substring in Verbindung mit verschachtelten
Klammern beinhalten. Ein entfernter, nicht authentifizierter Angreifer kann
die Schwachstelle ausnutzen und mit einem präparierten Regulären Ausdruck
einen Stack-basierten Speicherüberlauf verursachen, wodurch dieser in der
Lage ist, beliebigen Programmcode auszuführen oder eine Applikation zum
Absturz zu bringen (Denial-of-Service).

CVE-2014-9769: Schwachstelle in PCRE ermöglicht Denial-of-Service-Angriff

Es existiert eine Schwachstelle in der PCRE-Bibliothek, wenn die
Just-in-time-Kompilierung (JIT) verwendet wird. Dabei kommt es, aufgrund der
falschen Verwendung von Tabellensprüngen für die Optimierung verschachtelter
Alternativen, zu einem Segmenation-Fehler der wiederum einen Absturz des
Programms verursacht, welche die PCRE-Bibliothek verwendet. Darüber hinaus
wird vor der Wahrscheinlichkeit weiterer nicht spezifizierter Auswirkungen
gewarnt. Ein entfernter, nicht authentifizierter Angreifer kann mit einem
präparierten String einen Denial-of-Service-Angriff und möglicherweise noch
weitere Angriffe durchführen.

CVE-2016-1283: Schwachstelle in PCRE ermöglicht Denial-of-Service-Angriff

In der Funktion ‘pcre_compile2′ der PCRE-Bibliothek Version 8.38 werden
reguläre Ausdrücke der Form
/((?:F?+(?:^(?(R)a+\”){99}-))(?J)(?’R'(?’R’<((?'RR'(?'R'\){97)?J)?J)(?'R'(?'R'\){99|(:(?|(?'R')(\k'R')|((?'R')))H'R'R)(H'R))))))/ sowie ähnliche Ausdrücke mit benannten Untergruppen (named subgroups) nicht korrekt behandelt. Ein entfernter, nicht authentifizierter Angreifer kann durch speziell präparierte reguläre Ausdrücke einen Pufferüberlauf erzeugen und in der Folge einen Denial-of-Service-Angriff oder weitere nicht spezifizierte Angriffe durchführen. CVE-2015-8393: Schwachstelle in PCRE ermöglicht Ausspähen von Informationen Die Funktion 'pcregrep' in PCRE bevor 8.38 behandelt die '-q'-Option für binäre Dateien fehlerhaft. Ein entfernter, nicht authentisierter Angreifer kann dies ausnutzen, mittels einer präparierten Datei, wie gezeigt mit einem CGI-Skript, welches 'stdout'-Daten an den Client sendet, um sensitive Informationen auszuspähen. CVE-2015-8395: Schwachstelle in PCRE ermöglicht Denial-of-Service-Angriff Die PCRE-Bibliothek behandelt bestimmte, nicht näher spezifizierte Verweise nicht korrekt. Ein entfernter, nicht authentifizierter Angreifer kann dadurch einen Denial-of-Service-Zustand auslösen oder über speziell präparierte reguläre Ausdrücke weitere nicht spezifizierte Angriffe durchführen. CVE-2015-8394: Schwachstelle in PCRE ermöglicht Denial-of-Service-Angriff Die PCRE-Bibliothek behandelt die Bedingungen '(?()' und '(?(R)' nicht korrekt. Ein entfernter, nicht authentifizierter Angreifer kann dadurch einen Denial-of-Service-Zustand auslösen (Integerüberlauf) oder über speziell präparierte reguläre Ausdrücke weitere nicht spezifizierte Angriffe durchführen. CVE-2015-8392: Schwachstelle in PCRE ermöglicht Denial-of-Service-Angriff Die PCRE-Bibliothek behandelt bestimmte Instanzen der Zeichenkette '(?|' nicht korrekt. Ein entfernter, nicht authentifizierter Angreifer kann dadurch einen Denial-of-Service-Zustand auslösen (unbeabsichtigte Rekursion, Pufferüberlauf) oder über speziell präparierte reguläre Ausdrücke weitere nicht spezifizierte Angriffe durchführen. CVE-2015-8391: Schwachstelle in PCRE ermöglicht Denial-of-Service-Angriff Die PCRE-Bibliothek behandelt den regulären Ausdruck '[:' in Verschachtelungen nicht korrekt. Ein entfernter, nicht authentifizierter Angreifer kann dadurch einen kompletten Denial-of-Service-Zustand auslösen (Prozessorauslastung) oder über speziell präparierte reguläre Ausdrücke weitere nicht spezifizierte Angriffe durchführen. CVE-2015-8390: Schwachstelle in PCRE ermöglicht Denial-of-Service-Angriff Die PCRE-Bibliothek behandelt die Zeichenketten '[:' und '\\' als Teil von Zeichenklassen (character classes) nicht korrekt. Ein entfernter, nicht authentifizierter Angreifer kann dadurch einen Denial-of-Service-Zustand auslösen (Zugriff auf nicht-initialisierten Speicher) oder über speziell präparierte reguläre Ausdrücke weitere nicht spezifizierte Angriffe durchführen. CVE-2015-8389: Schwachstelle in PCRE ermöglicht Denial-of-Service-Angriff Die PCRE-Bibliothek behandelt den regulären Ausdruck '/(?:|a|){100}x/' und ähnliche Ausdrücke nicht korrekt. Ein entfernter, nicht authentifizierter Angreifer kann dadurch einen Denial-of-Service-Zustand auslösen (endlose Rekursion) oder über speziell präparierte reguläre Ausdrücke weitere nicht spezifizierte Angriffe durchführen. CVE-2015-8388: Schwachstelle in PCRE ermöglicht Denial-of-Service-Angriff Die PCRE-Bibliothek behandelt den regulären Ausdruck '/(?=di(?<=(?1))|(?=(.))))/' und ähnliche Ausdrücke mit nicht wieder geschlossenen runden Klammern nicht korrekt. Ein entfernter, nicht authentifizierter Angreifer kann dadurch einen Denial-of-Service-Zustand auslösen (Pufferüberlauf) oder über speziell präparierte reguläre Ausdrücke weitere nicht spezifizierte Angriffe durchführen. CVE-2015-8387: Schwachstelle in PCRE ermöglicht Denial-of-Service-Angriff Die PCRE-Bibliothek behandelt den Subroutinen-Aufruf (call) '(?123)' und ähnliche Aufrufe nicht korrekt. Ein entfernter, nicht authentifizierter Angreifer kann dadurch einen Denial-of-Service-Zustand auslösen (Integerüberlauf) oder über speziell präparierte reguläre Ausdrücke weitere nicht spezifizierte Angriffe durchführen. CVE-2015-8386: Schwachstelle in PCRE ermöglicht Denial-of-Service-Angriff Die PCRE-Bibliothek behandelt die Wechselwirkung von 'lookbehind'-Zusicherungen mit gemeinsamen rekursiven Teil-Ausdrücken nicht korrekt. Ein entfernter, nicht authentifizierter Angreifer kann dadurch einen Denial-of-Service-Zustand auslösen (Pufferüberlauf) oder über speziell präparierte reguläre Ausdrücke weitere nicht spezifizierte Angriffe durchführen. CVE-2015-8385: Schwachstelle in PCRE ermöglicht Denial-of-Service-Angriff Die PCRE-Bibliothek behandelt den regulären Ausdruck "/(?|(\k'Pm')|(?'Pm'))/" und ähnliche Ausdrücke mit bestimmten Vorwärts-Verweisen nicht korrekt. Ein entfernter, nicht authentifizierter Angreifer kann dadurch einen Denial-of-Service-Zustand auslösen (Pufferüberlauf) oder über speziell präparierte reguläre Ausdrücke weitere nicht spezifizierte Angriffe durchführen. CVE-2015-8384: Schwachstelle in PCRE ermöglicht Denial-of-Service-Angriff Die PCRE-Bibliothek behandelt den regulären Ausdruck "/(?J)(?'d'(?'d'\g{d}))/" und ähnliche Ausdrücke mit bestimmten rekursiven Verweisen nicht korrekt. Ein entfernter, nicht authentifizierter Angreifer kann dadurch einen Denial-of-Service-Zustand auslösen (Pufferüberlauf) oder über speziell präparierte reguläre Ausdrücke weitere nicht spezifizierte Angriffe durchführen. CVE-2015-8383: Schwachstelle in PCRE ermöglicht Denial-of-Service-Angriff Die PCRE-Bibliothek behandelt bestimmte wiederholte Bedingungsgruppen nicht korrekt. Ein entfernter, nicht authentifizierter Angreifer kann dadurch einen Denial-of-Service-Zustand auslösen (Pufferüberlauf) oder über speziell präparierte reguläre Ausdrücke weitere nicht spezifizierte Angriffe durchführen. CVE-2015-8382: Schwachstelle in PCRE ermöglicht Denial-of-Service-Angriff und Ausspähen von Informationen Die Funktion 'match' in 'pcre_exec.c' in der Bibliothek PCRE behandelt den regulären Ausdruck '/(?:((abcd))|(((?:(?:(?:(?:abc|(?:abcdef))))b)abcdefghi)abc)|((*ACCEPT)))/' und ähnliche Ausdrücke mit der Zeichenkette '(*ACCEPT)' nicht korrekt. Ein entfernter, nicht authentifizierter Angreifer kann dadurch einen Denial-of-Service-Zustand auslösen (teilweise initialisierter Speicher) oder sensitive Informationen aus dem Prozessspeicher ausspähen. CVE-2015-8381: Schwachstelle in PCRE ermöglicht Denial-of-Service-Angriff Die Funktion 'compile_regex' in 'prce_compile.c' in der Bibliothek PCRE behandelt die regulären Ausdrücke "/(?J:(?|(:(?|(?'R')(\k'R')|((?'R')))H'Rk'Rf)|s(?'R'))))/", "/(?J:(?|(:(?|(?'R')(\z(?|(?'R')(\k'R')|((?'R')))k'R')|((?'R')))H'Ak'Rf)|s(?'R')))/" und ähnliche Ausdrücke mit bestimmten Gruppenverweisen nicht korrekt. Ein entfernter, nicht authentifizierter Angreifer kann dadurch einen Denial-of-Service-Zustand auslösen (Pufferüberlauf) oder über speziell präparierte reguläre Ausdrücke weitere nicht spezifizierte Angriffe durchführen. CVE-2015-8380: Schwachstelle in PCRE ermöglicht Denial-of-Service-Angriff Die Funktion 'pcre_exec' in 'pcre_exec.c' in der Bibliothek PCRE behandelt den regulären Ausdruck '//' zusammen mit der Zeichenkette '\01' nicht korrekt. Ein entfernter, nicht authentifizierter Angreifer kann dadurch einen Denial-of-Service-Zustand auslösen (Pufferüberlauf) oder über speziell präparierte reguläre Ausdrücke weitere nicht spezifizierte Angriffe durchführen. CVE-2015-2328: Schwachstelle in PCRE ermöglicht Denial-of-Service-Angriff Die PCRE-Bibliothek behandelt den regulären Ausdruck '/((?(R)a|(?1)))+/' und ähnliche Ausdrücke mit bestimmten rekursiven Verweisen nicht korrekt. Ein entfernter, nicht authentifizierter Angreifer kann dadurch einen Denial-of-Service-Zustand auslösen (Schutzverletzung, segmentation fault) oder über speziell präparierte reguläre Ausdrücke weitere nicht spezifizierte Angriffe durchführen. CVE-2015-2327: Schwachstelle in PCRE ermöglicht Denial-of-Service-Angriff Die PCRE-Bibliothek behandelt den regulären Ausdruck '/(((a\2)|(a*)\g<-1>))*/’ und ähnliche Ausdrücke mit bestimmten internen,
rekursiven Verweisen nicht korrekt. Ein entfernter, nicht authentifizierter
Angreifer kann dadurch einen Denial-of-Service-Zustand auslösen
(Schutzverletzung, segmentation fault) oder über speziell präparierte
reguläre Ausdrücke weitere nicht spezifizierte Angriffe durchführen.

CVE-2015-5073: Schwachstelle in find_fixedlength() erlaubt
Denial-of-Service-Angriff

Eine Heap-Buffer-Overflow-Schwachstelle wurde in der Funktion
find_fixedlength() gefunden. Ein entfernter, nicht authentisierter Angreifer
kann diese Schwachstelle ausnutzen, um die Anwendung zum Absturz zu bringen
(Denial-of-Service), Informationen auszuspähen oder möglicherweise weitere
Angriffe durchzuführen.

CVE-2015-3210: Schwachstelle in pcre_compile2() / compile_regex() erlaubt
das Ausführen beliebigen Programmcodes

In pcre_compile2() / compile_regex() in PCRE existiert eine Heap-basierte
Pufferüberlaufschwachstelle. Ein entfernter, nicht authentisierter Angreifer
kann diese Schwachstelle ausnutzen, um die Anwendung zum Absturz zu bringen
(Denial-of-Service) und beliebigen Programmcode auszuführen.

CVE-2015-2326: Heap-Pufferüberlauf-Schwachstelle ermöglicht das Ausführen
beliebigen Programmcodes mit den Rechten des Benutzers

Aufgrund unzureichender Überprüfung der Einhaltung von Speichergrenzen kann
es in der Funktion pcre_compile2() zu einem Speicherüberlauf auf dem Heap
kommen. Ein entfernter, nicht authentifizierter Angreifer kann diese
Schwachstelle mittels speziell präparierten regulären Ausdrücken ausnutzen,
um beliebigen Programmcode mit den Rechten des Benutzers, der auf
PCRE-basierende Anwendungen nutzt, auszuführen.

CVE-2015-2325: Heap-Pufferüberlauf-Schwachstelle ermöglicht das Ausführen
beliebigen Programmcodes mit den Rechten des Benutzers

Aufgrund unzureichender Überprüfung der Einhaltung von Speichergrenzen kann
es in der Funktion compile_branch() zu einem Speicherüberlauf auf dem Heap
kommen. Ein entfernter, nicht authentifizierter Angreifer kann diese
Schwachstelle mittels speziell präparierten regulären Ausdrücken ausnutzen,
um beliebigen Programmcode mit den Rechten des Benutzers, der auf
PCRE-basierende Anwendungen nutzt, auszuführen.

Referenzen:

Dieses Advisory finden Sie auch im DFN-CERT Portal unter:
https://portal.cert.dfn.de/adv/DFN-CERT-2016-0520/

Schwachstelle CVE-2015-2325 (NVD):
http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2015-2325

Schwachstelle CVE-2015-2326 (NVD):
http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2015-2326

Schwachstelle CVE-2015-3210 (NVD):
http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2015-3210

Schwachstelle CVE-2015-5073 (NVD):
http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2015-5073

Schwachstelle CVE-2015-2327 (NVD):
http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2015-2327

Schwachstelle CVE-2015-2328 (NVD):
http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2015-2328

Schwachstelle CVE-2015-8380 (NVD):
http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2015-8380

Schwachstelle CVE-2015-8381 (NVD):
http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2015-8381

Schwachstelle CVE-2015-8382 (NVD):
http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2015-8382

Schwachstelle CVE-2015-8383 (NVD):
http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2015-8383

Schwachstelle CVE-2015-8384 (NVD):
http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2015-8384

Schwachstelle CVE-2015-8385 (NVD):
http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2015-8385

Schwachstelle CVE-2015-8386 (NVD):
http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2015-8386

Schwachstelle CVE-2015-8387 (NVD):
http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2015-8387

Schwachstelle CVE-2015-8388 (NVD):
http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2015-8388

Schwachstelle CVE-2015-8389 (NVD):
http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2015-8389

Schwachstelle CVE-2015-8390 (NVD):
http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2015-8390

Schwachstelle CVE-2015-8391 (NVD):
http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2015-8391

Schwachstelle CVE-2015-8392 (NVD):
http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2015-8392

Schwachstelle CVE-2015-8393 (NVD):
http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2015-8393

Schwachstelle CVE-2015-8394 (NVD):
http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2015-8394

Schwachstelle CVE-2015-8395 (NVD):
http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2015-8395

Schwachstelle CVE-2016-1283 (NVD):
http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2016-1283

Schwachstelle CVE-2016-3191 (NVD):
http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2016-3191

Schwachstelle CVE-2014-9769 (NVD):
http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2014-9769

Ubuntu Security Notice USN-2943-1:
http://www.ubuntu.com/usn/usn-2943-1/

(c) DFN-CERT Services GmbH, all rights reserved!
Die Weiterverbreitung ist mit Hinweis auf den Copyrightinhaber innerhalb der
eigenen Einrichtung erlaubt. Eine darüber hinausgehende Verbreitung bedarf
des schriftlichen Einverständnisses des Rechteinhabers.

Nach oben