Python 2.6.8/2.7.3/3.3.2 HTTP read_status HTTP Header Denial of Service

CVSS Meta Temp ScoreAktueller Exploitpreis (≈)CTI Interest Score
7.2$0-$5k0.00

Eine kritische Schwachstelle wurde in Python 2.6.8/2.7.3/3.3.2 (Programming Language Software) gefunden. Betroffen davon ist die Funktion read_status der Komponente HTTP Handler. Mittels Manipulieren durch HTTP Header kann eine Denial of Service-Schwachstelle ausgenutzt werden. Klassifiziert wurde die Schwachstelle durch CWE als CWE-404. Dies hat Einfluss auf die Verfügbarkeit.

Die Schwachstelle wurde am 25.09.2012 durch Christian Heimes von OUSPG als Issue16037 in Form eines bestätigten Bug Reports (Website) herausgegeben. Bereitgestellt wird das Advisory unter bugs.python.org. Die Verwundbarkeit wird seit dem 15.02.2013 mit der eindeutigen Identifikation CVE-2013-1752 gehandelt. Umgesetzt werden kann der Angriff über das Netzwerk. Das Ausnutzen erfordert keine spezifische Authentisierung. Zur Schwachstelle sind technische Details bekannt, ein verfügbarer Exploit jedoch nicht. Das Advisory weist darauf hin:

The httplib module / package can read arbitrary amounts of data from its socket when it's parsing the HTTP header. This may lead to issues when a user connects to a broken HTTP server or something that isn't a HTTP at all. The issue can be broken up into two parts: parsing the HTTP status line parsing and parsing the remaining HTTP headers.

Für den Vulnerability Scanner Nessus wurde am 13.06.2014 ein Plugin mit der ID 75315 (openSUSE Security Update : python3 (openSUSE-SU-2014:0498-1)) herausgegeben, womit die Existenz der Schwachstelle geprüft werden kann. Es wird der Family SuSE Local Security Checks zugeordnet und im Kontext l ausgeführt. Der kommerzielle Vulnerability Scanner Qualys bietet das Plugin 350081 (Amazon Linux Security Advisory for python26: ALAS-2015-621) zur Prüfung der Schwachstelle an.

Ein Aktualisieren auf die Version 2.7.4, 2.6.9 oder 3.3.3 vermag dieses Problem zu lösen. Eine neue Version kann von hg.python.org bezogen werden. Das Erscheinen einer Gegenmassnahme geschah direkt nach der Veröffentlichung der Schwachstelle. Die Entwickler haben so sofort gehandelt. Die Schwachstelle wird durch folgenden Code angegangen:

--- a/Lib/httplib.py
+++ b/Lib/httplib.py
@@ -362,7 +362,9 @@

     def _read_status(self):
         # Initialize with Simple-Response defaults
-        line = self.fp.readline()
+        line = self.fp.readline(_MAXLINE + 1)
+        if len(line) > _MAXLINE:
+            raise LineTooLong("header line")
         if self.debuglevel > 0:
             print "reply:", repr(line)
         if not line:
Das Advisory stellt fest:
Reading and parsing of the HTTP status line is already limited in Python 3.x. Python 2.7 and lower may read arbitrary amounts of bytes from the socket until it finds a newline char. (…) Both Python 2 and Python 3 accept an unlimited count of HTTP headers with a maximum length of 64k each. As headers are accumulated in an list it may consume lots of memory. I suggest that we limit the maximum amount of HTTP header lines to a sane value. How does 100 sound to you?

Unter anderem wird der Fehler auch in den Datenbanken von X-Force (90056) und Tenable (75315) dokumentiert. Die Schwachstellen 11628, 11629, 11630 und 11631 sind ähnlich.

Produktinfo

Typ

Name

Version

Lizenz

CPE 2.3info

CPE 2.2info

CVSSv4info

VulDB CVSS-B Score: 🔍
VulDB CVSS-BT Score: 🔍
VulDB Vector: 🔍
VulDB Zuverlässigkeit: 🔍

CVSSv3info

VulDB Meta Base Score: 7.5
VulDB Meta Temp Score: 7.2

VulDB Base Score: 7.5
VulDB Temp Score: 7.2
VulDB Vector: 🔍
VulDB Zuverlässigkeit: 🔍

CVSSv2info

AVACAuCIA
💳💳💳💳💳💳
💳💳💳💳💳💳
💳💳💳💳💳💳
VektorKomplexitätAuthentisierungVertraulichkeitIntegritätVerfügbarkeit
freischaltenfreischaltenfreischaltenfreischaltenfreischaltenfreischalten
freischaltenfreischaltenfreischaltenfreischaltenfreischaltenfreischalten
freischaltenfreischaltenfreischaltenfreischaltenfreischaltenfreischalten

VulDB Base Score: 🔍
VulDB Temp Score: 🔍
VulDB Zuverlässigkeit: 🔍

Exploitinginfo

Klasse: Denial of Service
CWE: CWE-404
ATT&CK: T1499

Lokal: Nein
Remote: Ja

Verfügbarkeit: 🔍
Status: Nicht definiert

EPSS Score: 🔍
EPSS Percentile: 🔍

Preisentwicklung: 🔍
Aktuelle Preisschätzung: 🔍

0-Dayfreischaltenfreischaltenfreischaltenfreischalten
Heutefreischaltenfreischaltenfreischaltenfreischalten

Nessus ID: 75315
Nessus Name: openSUSE Security Update : python3 (openSUSE-SU-2014:0498-1)
Nessus Datei: 🔍
Nessus Risiko: 🔍
Nessus Family: 🔍
Nessus Context: 🔍
Nessus Port: 🔍

OpenVAS ID: 14611
OpenVAS Name: Amazon Linux Local Check: alas-2015-621
OpenVAS Datei: 🔍
OpenVAS Family: 🔍

Qualys ID: 🔍
Qualys Name: 🔍

Threat Intelligenceinfo

Interesse: 🔍
Aktive Akteure: 🔍
Aktive APT Gruppen: 🔍

Gegenmassnahmeninfo

Empfehlung: Upgrade
Status: 🔍

Reaktionszeit: 🔍
0-Day Time: 🔍
Exposure Time: 🔍

Upgrade: Python 2.7.4/2.6.9/3.3.3

Timelineinfo

25.09.2012 🔍
25.09.2012 +0 Tage 🔍
15.02.2013 +143 Tage 🔍
09.07.2013 +144 Tage 🔍
27.12.2013 +171 Tage 🔍
27.12.2013 +0 Tage 🔍
04.04.2014 +98 Tage 🔍
13.06.2014 +70 Tage 🔍
29.03.2016 +655 Tage 🔍
03.02.2019 +1041 Tage 🔍

Quelleninfo

Advisory: Issue16037
Person: Christian Heimes
Firma: OUSPG
Status: Bestätigt

CVE: CVE-2013-1752 (🔍)
OVAL: 🔍

X-Force: 90056
Vulnerability Center: 57793 - Python SSL Module Remote DoS due to Unlimited readline() Function Call, Medium
SecurityFocus: 61050 - Google Chrome CVE-2013-2877 Out of Bounds Denial of Service Vulnerability
Secunia: 56226 - Python Multiple Vulnerabilities, Less Critical
OSVDB: 101386

Siehe auch: 🔍

Eintraginfo

Erstellt: 27.12.2013 23:38
Aktualisierung: 03.02.2019 10:15
Anpassungen: 27.12.2013 23:38 (76), 03.02.2019 10:15 (8)
Komplett: 🔍

Diskussion

Bisher keine Kommentare. Sprachen: de + en.

Bitte loggen Sie sich ein, um kommentieren zu können.

Want to stay up to date on a daily basis?

Enable the mail alert feature now!