Lädt...

🕵️ Perl 5.8.9 UTF-8 Handler regexec.c Denial of Service


Nachrichtenbereich: 🕵️ Sicherheitslücken
🔗 Quelle: scip.ch

Allgemein

scipID: 82792
Betroffen: Perl 5.8.9
Veröffentlicht: 20.04.2016 (Karl Williamson)
Risiko: kritisch

Erstellt: 25.04.2016
Eintrag: 78.4% komplett

Beschreibung

In Perl 5.8.9 wurde eine Schwachstelle entdeckt. Sie wurde als kritisch eingestuft. Betroffen ist eine unbekannte Funktion der Datei regexec.c der Komponente UTF-8 Handler. Mittels Manipulieren mit einer unbekannten Eingabe kann eine Denial of Service-Schwachstelle (CPU Exhaustion) ausgenutzt werden. Das hat Auswirkungen auf die Verfügbarkeit.

Die Schwachstelle wurde am 20.04.2016 durch Karl Williamson als Patch #123562 in Form eines bestätigten Mailinglist Posts (oss-sec) an die Öffentlichkeit getragen. Bereitgestellt wird das Advisory unter seclists.org. Die Veröffentlichung wurde in Zusammenarbeit mit dem Hersteller durchgeführt. Eine eindeutige Identifikation der Schwachstelle wird seit dem 20.04.2016 mit CVE-2015-8853 vorgenommen. Sie ist leicht auszunutzen. Die Umsetzung des Angriffs kann dabei über das Netzwerk erfolgen. Um eine Ausnutzung durchzusetzen, muss keine spezifische Authentisierung umgesetzt werden. Es sind sowohl technische Details als auch ein öffentlicher Exploit zur Schwachstelle bekannt. Der folgende Code generiert das Problem:

if (UTF8_IS_CONTINUED(*s)) {
   while (s > lim && UTF8_IS_CONTINUATION(*s))
      s--;
(...)
Das Advisory weist darauf hin:

The regex engine got into an infinite loop because of the malformation. It is trying to back-up over a sequence of UTF-8 continuation bytes. But the character just before the sequence should be a start byte. If not, there is a malformation. I added a test to croak if that isn’t the case so that it doesn’t just infinitely loop. I did this also in the similar areas of regexec.c.

Ein öffentlicher Exploit wurde durch Karl Williamson umgesetzt und schon vor und nicht nach dem Advisory veröffentlicht. Er wird als proof-of-concept gehandelt. Der Download des Exploits kann von perl5.git.perl.org geschehen. Als 0day erzielte der Exploit wohl etwa $1k-$2k auf dem Schwarzmarkt. Der durch den Exploit genutzte Code gestaltet sich wie folgt:

my $code='
   BEGIN{require q(test.pl);}
   use Encode qw(_utf8_on);
   my $malformed = "ax80n";
   _utf8_on($malformed);
   watchdog(3);
   $malformed =~ /(nr|r)$/;
   print q(No infinite loop here!);
';
Die Schwachstelle lässt sich durch das Einspielen eines Patches beheben. Dieser kann von perl5.git.perl.org bezogen werden. Das Erscheinen einer Gegenmassnahme geschah schon vor und nicht nach der Veröffentlichung der Schwachstelle. Die Entwickler haben offensichtlich vorab reagiert. Die Schwachstelle wird durch folgenden Code angegangen:
if (! UTF8_IS_START(*s)) {
   dTHX;
   Perl_croak(aTHX_ "Malformed UTF-8 character (fatal)");
}
Mitunter wird der Fehler auch in der Verwundbarkeitsdatenbank von X-Force (112536) dokumentiert.

CVSS

Base Score: 7.8 (CVSS2#AV:N/AC:L/Au:N/C:N/I:N/A:C) [?]
Temp Score: 6.1 (CVSS2#E:POC/RL:OF/RC:C) [?]

CPE

Exploiting

Klasse: Denial of Service
Lokal: Nein
Remote: Ja

Verfügbarkeit: Ja
Zugang: öffentlich
Status: Proof-of-Concept
Autor: Karl Williamson
Download: perl5.git.perl.org

Aktuelle Preisschätzung: $1k-$2k (0-day) / $0-$1k (Heute)

Gegenmassnahmen

Empfehlung: Patch
Status: Offizieller Fix
0-Day Time: 0 Tage seit gefunden

Patch: perl5.git.perl.org

Timeline

16.09.2015 | Exploit veröffentlicht
16.09.2015 | Gegenmassnahme veröffentlicht
20.04.2016 | Advisory veröffentlicht
20.04.2016 | CVE zugewiesen
25.04.2016 | VulDB Eintrag erstellt
25.04.2016 | VulDB Eintrag aktualisiert

Quellen

Advisory: Patch #123562
Person: Karl Williamson
Status: Bestätigt
Koordiniert: Ja

CVE: CVE-2015-8853 (mitre.org) (nvd.nist.org) (cvedetails.com)

X-Force: 112536 – Perl UTF8 inputs denial of service

...

🕵️ Perl 5.8.9 UTF-8 Handler regexec.c Denial of Service


📈 73.95 Punkte
🕵️ Sicherheitslücken

🕵️ Perl 5.8.9 UTF-8 Handler regexec.c Denial of Service


📈 73.95 Punkte
🕵️ Sicherheitslücken

🕵️ UTF-7 UTF-8 XSS in title


📈 41.71 Punkte
🕵️ Sicherheitslücken

🕵️ Oniguruma 6.9.2 regexec.c match_at() Regular Expression denial of service


📈 33.21 Punkte
🕵️ Sicherheitslücken

🕵️ libEBML bis 1.3.2 UTF-8 String Handler UpdateFromUTF8 Information Disclosure


📈 28.21 Punkte
🕵️ Sicherheitslücken

🕵️ libEBML bis 1.3.2 UTF-8 String Handler UpdateFromUTF8 Information Disclosure


📈 28.21 Punkte
🕵️ Sicherheitslücken

🕵️ GNU C Library 2.17 posix/regexec.c extend_buffers memory corruption


📈 27.08 Punkte
🕵️ Sicherheitslücken

🕵️ GNU C Library up to 2.29 Regular Expression posix/regexec.c proceed_next_node memory corruption


📈 27.08 Punkte
🕵️ Sicherheitslücken

🕵️ uClibc 0.9.33.2 Regular Expression misc/regex/regexec.c get_subexp memory corruption


📈 27.08 Punkte
🕵️ Sicherheitslücken

🕵️ uClibc 0.9.33.2 Regular Expression misc/regex/regexec.c get_subexp Pufferüberlauf


📈 27.08 Punkte
🕵️ Sicherheitslücken

🕵️ CVE-2024-2689 | Temporal Server up to 1.20.4/1.21.5/1.22.6 UTF-8 String denial of service


📈 26.99 Punkte
🕵️ Sicherheitslücken

🕵️ GNU Screen up to 4.8.0 UTF-8 Encoding encoding.c denial of service


📈 26.99 Punkte
🕵️ Sicherheitslücken

🕵️ Apache Tomcat up to 7.0.86/8.0.51/8.5.30/9.0.7 UTF-8 Decoder Loop denial of service


📈 26.99 Punkte
🕵️ Sicherheitslücken

🕵️ Eclipse Mosquitto up to 1.4.15 UTF-8 String denial of service


📈 26.99 Punkte
🕵️ Sicherheitslücken

🕵️ Sun Solaris 8/9/10 UTF-8 Parser Libxml2 denial of service


📈 26.99 Punkte
🕵️ Sicherheitslücken

🕵️ Apache Tomcat bis 7.0.86/8.0.51/8.5.30/9.0.7 UTF-8 Decoder Loop Denial of Service


📈 26.99 Punkte
🕵️ Sicherheitslücken

🕵️ Eclipse Mosquitto bis 1.4.15 UTF-8 String Denial of Service


📈 26.99 Punkte
🕵️ Sicherheitslücken

🕵️ Vuln: Expat UTF-8 Character XML Parsing Remote Denial of Service Vulnerability


📈 26.99 Punkte
🕵️ Sicherheitslücken

🕵️ libdbd-mysql-perl 4.028 Error Message Handler Denial of Service


📈 26.02 Punkte
🕵️ Sicherheitslücken

🕵️ libdbd-mysql-perl 4.028 Error Message Handler Denial of Service


📈 26.02 Punkte
🕵️ Sicherheitslücken

🕵️ Medium CVE-2020-12723: PERL PERL


📈 25.06 Punkte
🕵️ Sicherheitslücken

🔧 Perl Weekly #668 - Perl v5.40


📈 25.06 Punkte
🔧 Programmierung

📰 Perl-Entwickler ringen um einen neuen Namen für Perl 6


📈 25.06 Punkte
📰 IT Nachrichten

🔧 Perl Weekly #665 - How to get better at Perl?


📈 25.06 Punkte
🔧 Programmierung

🕵️ Apache Mod Perl 1 perl-status Apache::Status cross site scripting


📈 25.06 Punkte
🕵️ Sicherheitslücken

🔧 Perl Weekly #664 - German Perl Workshop


📈 25.06 Punkte
🔧 Programmierung

📰 Perl, Perl 6, and Two Application Frameworks Release 2017 Advent Calendars


📈 25.06 Punkte
📰 IT Security Nachrichten

matomo