UPDATE: DFN-CERT-2016-1011 Pidgin: Mehrere Schwachstellen erlauben u.a. das Ausführen beliebigen Programmcodes [Linux][Windows]

Liebe Kolleginnen und Kollegen,

bitte beachten Sie die folgende Sicherheitsmeldung.

Historie:
Version 2 (13.07.2016):
Canonical stellt für Ubuntu 12.04 LTS, Ubuntu 14.04 LTS und Ubuntu 15.10
Sicherheitsupdates für Pidgin bereit. In dem referenzierten
Sicherheitsupdate werden die Schwachstellen CVE-2016-2379 und
PIDGIN-2016-06-21-ID-091 nicht genannt.
Version 1 (22.06.2016):
Neues Advisory

Betroffene Software:

Pidgin < 2.11.0 Betroffene Plattformen: Canonical Ubuntu Linux 12.04 LTS Canonical Ubuntu Linux 14.04 LTS Canonical Ubuntu Linux 15.10 GNU/Linux Microsoft Windows Mehrere Schwachstellen in Pidgin, in den meisten Fällen in der MXIT-Komponente, ermöglichen einem entfernten, nicht authentifizierten Angreifer das Ausführen beliebigen Programmcodes, das Ausspähen von Informationen, die Durchführung von Denial-of-Service (DoS)-Angriffen sowie das Umgehen von Sicherheitsvorkehrungen. Sollte der Pidgin ausführende Benutzer als Administrator angemeldet sein, ist die vollständige Übernahme des Systems möglich. Mit der Pidgin Version 2.11.0 als Sicherheitsupdate werden alle genannten Schwachstellen adressiert. Patch: Pidgin Download-Seite https://www.pidgin.im/download/

Patch:

Ubuntu Security Notice USN-3031-1

http://www.ubuntu.com/usn/usn-3031-1/

PIDGIN-2016-06-21-ID-091: Schwachstelle in Pidgin ermöglicht Umgehen von
Sicherheitsvorkehrungen

Es existiert eine Schwachstelle in Pidgin bei Verwendung von GnuTLS aufgrund
unzureichender Überprüfung der Rückgabewerte der Funktionen
gnutls_x509_crt_init() und gnutls_x509_crt_import(). Dadurch kann es zu
einem fehlerhaften Import von X.509-Zertifikaten kommen. Ein entfernter,
nicht authentifizierter Angreifer kann diese Schwachstelle ausnutzen, um
Sicherheitsvorkehrungen zu umgehen, die auf der Verwendung von
X.509-Zertifikaten beruhen.

CVE-2016-4323: Schwachstelle in Pidgin ermöglicht Manipulation von Dateien

Es existiert eine Schwachstelle in Pidgin aufgrund der Möglichkeit einer
Verzeichnis-Traversierung bei der Behandlung des MXIT-Protokolls für
Splash-Bilddateien. Durch das Senden speziell präparierter MXIT-Daten durch
einen Server, etwa eines ungültigen Dateinamens für eine Splash-Bilddatei,
kann es zu einem Überschreiben von Dateien kommen. Ein entfernter, nicht
authentifizierter Angreifer kann diese Schwachstelle ausnutzen, wenn er
Zugriff auf den Netzwerkverkehr hat oder mittels eines schädlichen Servers,
um mittels einer präparierten Splash-Bilddatei beliebige Dateien zu
manipulieren oder zu löschen.

CVE-2016-2380: Schwachstelle in Pidgin ermöglicht Ausspähen von
Informationen

Es existiert eine Schwachstelle in Pidgin aufgrund eines fehlerhaften
Umgangs mit dem MXIT-Protokoll. Diese ermöglicht es einem entfernten, nicht
authentifizierten Angreifer mittels speziell präparierter MXIT-Daten, einen
Lesezugriff außerhalb gültiger Speichergrenzen (Out-of-bounds Read) bei
einem Client zu verursachen und dadurch Informationen aus dem Speicher
auszuspähen.

CVE-2016-2379: Schwachstelle in Pidgin ermöglicht Erlangen von
Benutzerrechten

Es existiert eine Schwachstelle in Pidgin aufgrund der Verwendung einer
schwachen kryptografischen Verschlüsselung für Benutzerpassworte im
MXIT-Protokoll. Dadurch ist es möglich, ein zwischen Client und Server
abgehörtes Passwort wieder einzuspielen und sich so beim Server als Client
anzumelden. Ein entfernter, nicht authentifizierter Angreifer kann
Benutzerrechte erlangen.

CVE-2016-2378: Schwachstelle in Pidgin ermöglicht Ausführen beliebigen
Programmcodes

Es existiert eine Schwachstelle in Pidgin aufgrund einer unzureichenden
Überprüfung der Variablen ‘len’ in der Funktion ‘get_utf8_string’. Innerhalb
des Programmablaufs kommt es zu einer Konvertierung von vorzeichenlosen in
vorzeichenbehaftete Ganzzahlen, wodurch der Wert negativ werden kann, ein
Fall, der durch die Überprüfung nicht abgedeckt wird. Im weiteren Verlauf
wird der Wert von ‘len’ zum Lesen von Speicher verwendet, in der Folge der
negative Wert wieder als große positive Zahl interpretiert und es kommt zu
einen Speicherüberlauf (Buffer Overflow). Ein entfernter, nicht
authentifizierter Angreifer kann die Schwachstelle durch das Versenden
negativer Längenwerte in MXIT-Daten beliebigen Programmcode zur Ausführung
bringen.

CVE-2016-2377: Schwachstelle in Pidgin ermöglicht Ausführen beliebigen
Programmcodes

Es existiert eine Schwachstelle in der HTTP-Komponente des MXIT-Protokolls
in Pidgin aufgrund der unzureichenden Überprüfung von Header-Werten. Beim
Erhalt einer HTTP-Antwort von einem Server wird in der Funktion
‘mxit_cb_http_read’ die Größe des Body aus diesen Werten berechnet. Dieser
Wert kann negativ werden, da die Variable ‘bodylen’ als vorzeichenbehaftete
Ganzzahl (Signed Integer) definiert ist. Weil eine folgenden Überprüfung
diesen Fall nicht abdeckt, kommt es im weiteren Programmablauf dazu, dass
der Wert von ‘bodylen’ in die Variable ‘session->rx_i’ kopiert wird, welche
nicht vorzeichenbehaftet ist, wodurch eine negative Zahl in eine große
positive Zahl umgewandelt wird. Dieser Wert wird zu einem späteren Zeitpunkt
als Grenzwert für einen Schleifendurchlauf verwendet, in der eine
hochzählende Schleifenvariable als Index für Speicherzugriffe verwendet
wird. Dies ermöglicht den Schreibzugriff um ein Byte außerhalb des gültigen
Bereiches. Ein entfernter, nicht authentifizierter Angreifer kann diese
Schwachstelle ausnutzen und durch das Versenden speziell präparierter
MXIT-Daten beliebigen Programmcodes ausführen.

CVE-2016-2376: Schwachstelle in Pidgin ermöglicht Ausführen beliebigen
Programmcodes

Es existiert eine Schwachstelle in Pidgin aufgrund eines Fehlers in der
Funktion ‘mxit_cb_rx’ im verwendeten MXIT-Protokoll. Dadurch wird die
Maximalgröße von Datenpaketen zwar überprüft, der Fehlerfall aber lediglich
protokolliert und die Verarbeitung trotzdem fortgesetzt. Im Fall eines
negativen Wertes findet selbst die Protokollierung des Fehlers nicht mehr
statt. Der eingelesene Wert der Paketgröße wird zur Reservierung von
Speicher und im weiteren Verlauf des Programms auch für Leseoperationen
verwendet. Ein entfernter, nicht authentifizierter Angreifer kann diese
Schwachstelle ausnutzen und durch das Versenden von präparierten MXIT-Daten
den Heap-basierten Pufferspeicher zum Überlauf und dadurch beliebigen
Programmcode zur Ausführung bringen.

CVE-2016-2375: Schwachstelle in Pidgin ermöglicht Ausspähen von
Informationen

Es existiert eine Schwachstelle in Pidgin bei der Behandlung des
MXIT-Protokolls für vorgeschlagene Kontakte (Suggested Contacts), wodurch es
bei der Verarbeitung speziell präparierter MXIT-Kontaktinformationen zu
einer Offenlegung von Speicher kommen kann. Ein entfernter, nicht
authentifizierter Angreifer kann diese Schwachstelle ausnutzen, in einem
Man-in-the-middle-Angriff oder mittels eines schädlichen Servers, um einen
Absturz der Anwendung zu verursachen (Denial-of-Service) oder Informationen
auszuspähen.

CVE-2016-2374: Schwachstelle in Pidgin ermöglicht Ausführen beliebigen
Programmcodes

Es existiert eine Schwachstelle in Pidgin aufgrund fehlerhafter Verarbeitung
von Nachrichtenteilen in der Funktion ‘multimx_message_received’ im
MXIT-Protokoll. Diese tritt auf, wenn ein Benutzer Nachrichten von einem
MultiMX-Raum erhält und Pidgin versucht, den Nicknamen aus der Nachricht zu
extrahieren. Enthält der Nickname am Ende ein NULL, wird bei der
Verarbeitung der Zeiger auf die Zeichenkette (String) der Nachricht auf eine
Speicheradresse außerhalb des gültigen Speicherbereichs gesetzt. Ein
entfernter, nicht authentifizierter Angreifer kann die Schwachstelle durch
das Versenden speziell präparierter MXIT-Daten über einen bösartigen Server
ausnutzen und dadurch entweder Informationen ausspähen oder beliebigen
Programmcode ausführen.

CVE-2016-2373: Schwachstelle in Pidgin ermöglicht Denial-of-Service-Angriff

Bei der Verarbeitung von MXIT-Daten für Kontaktaktualisierungen in Pidgin
besteht eine Schwachstelle, weil der Wert für ‘Mood’ unzureichend geprüft in
der Funktion ‘mxit_parse_cmd_contact’ verwendet wird. Dabei kann es zu einem
Lesezugriff außerhalb gültiger Speichergrenzen (Out-of-bounds Read) kommen,
wodurch die Anwendung abstürzen kann. Ein entfernter, nicht
authentifizierter Angreifer kann durch das Versenden speziell präparierter
MXIT-Daten, auch über einen Server, einen Denial-of-Service-Angriff
durchführen.

CVE-2016-2372: Schwachstelle in Pidgin ermöglicht Ausspähen von
Informationen

Es existiert eine Schwachstelle bei der Handhabung des MXIT-Protokolls in
Pidgin aufgrund unzureichender Überprüfung der Größenangabe für
Dateiübertragungen. Dies kann dazu führen, dass, wenn die Angaben darin
größer sind als der Pufferspeicher, eine Leseoperation außerhalb der
gültigen Speichergrenzen vorgenommen wird (Out-of-bounds Read) und entweder
das Programm aufgrund einer Speicherschutzverletzung beendet wird
(Denial-of-Service) oder Inhalte aus dem Speicher in die Datei geschrieben
werden. Ein entfernter, nicht authentifizierter Angreifer kann durch das
Versenden speziell präparierter MXIT-Daten in direkt, über einen bösartigen
Server oder auch in einem Man-in-the-Middle-Angriff Informationen ausspähen
oder einen Denial-of-Service-Zustand bewirken.

CVE-2016-2371: Schwachstelle in Pidgin ermöglicht Ausführen beliebigen
Programmcodes

Es existiert eine Schwachstelle in der Funktion ‘mxit_parse_cmd_extprofile’
im MXIT-Protokoll in Pidgin aufgrund unzureichender Überprüfung von
MXIT-Daten, welche vom Server empfangen werden. Innerhalb der Funktion wird
die Anzahl der Attribute, die der Server übermittelt, in eine Variable
gespeichert und im weiteren Programmverlauf als Grenze für einen
Schleifendurchlauf, zur Berechnung eines Array-Indexes, für einen Lese- und
für einen Schreibzugriff auf ein Array verwendet. An dieser Stelle ist es
möglich, einen Schreibzugriff außerhalb gültiger Speichergrenzen
(Out-of-bounds Write) durchzuführen, wodurch ein entfernter, nicht
authentifizierter Angreifer in der Lage ist, beliebigen Programmcode zur
Ausführung zu bringen.

CVE-2016-2370: Schwachstelle in Pidgin ermöglicht Denial-of-Service-Angriff

Es existiert eine Schwachstelle in der Handhabung des MXIT-Protokolls in
Pidgin aufgrund der unzureichenden Überprüfung von Speichergrenzen in der
Funktion ‘mxit_chunk_parse_cr’. Dies kann einen Lesezugriff außerhalb
gültiger Speichergrenzen zur Folgen haben (Out-of-bounds Read), wodurch das
Programm aufgrund einer Speicherschutzverletzung beendet wird. Ein
entfernter, nicht authentifizierter Angreifer kann einen
Denial-of-Service-Angriff durchführen.

CVE-2016-2369: Schwachstelle in Pidgin ermöglicht Denial-of-Service-Angriff

Es existiert eine Schwachstelle in der Handhabung des MXIT-Protokolls in
Pidgin aufgrund des fehlerhaften Umgangs mit dem NULL-Byte in der Funktion
‘mxit_parse_packet’. Dies hat zur Folge, dass der ‘Fields’-Wert des Records
nicht initialisiert wird, wodurch das Programm bei der Dereferenzierung
abstürzt. Ein entfernter, nicht authentifizierter Angreifer kann durch das
Versenden speziell präparierter MXIT-Daten, bei denen das erste Byte NULL
ist, einen Denial-of-Service-Angriff durchführen.

CVE-2016-2368: Schwachstellen in Pidgin ermöglichen Ausführen beliebigen
Programmcodes

Es existieren mehrere Schwachstellen im MXIT-Plugin in Pidgin aufgrund
unsicherer Verwendung des Rückgabeparameters der Funktion ‘g_snprintf’.
Dieser wird, ohne zu prüfen, ob dabei die Speichergrenzen eingehalten
werden, als Index beziehungsweise Offset innerhalb einer Zeichenkette
(String) verwendet. Ein entfernter, nicht authentifizierter Angreifer kann
diese Schwachstelle ausnutzen und durch das Versenden speziell präparierter
MXIT-Daten einen Pufferspeicherüberlauf (Buffer Overflow) verursachen und
dadurch beliebigen Programmcode zur Ausführung bringen oder Speicherinhalte
ausspähen.

CVE-2016-2367: Schwachstelle in Pidgin ermöglicht Ausspähen von
Informationen

Es existiert eine Schwachstelle bei der Handhabung des MXIT-Protokolls in
Pidgin aufgrund unzureichender Überprüfung der Größenangabe für das Lesen
der Avatar-Datei. Dies kann dazu führen, dass, wenn die Angaben darin größer
sind als der Pufferspeicher, eine Leseoperation außerhalb der gültigen
Speichergrenzen vorgenommen wird (Out-of-bounds Read) und entweder das
Programm aufgrund einer Speicherschutzverletzung beendet wird
(Denial-of-Service) oder Inhalte aus dem Speicher in die Datei geschrieben
werden. Ein entfernter, nicht authentifizierter Angreifer kann durch das
Versenden speziell präparierter MXIT-Daten direkt, über einen bösartigen
Server oder auch in einem Man-in-the-Middle-Angriff Informationen ausspähen
oder einen Denial-of-Service-Zustand bewirken.

CVE-2016-2366: Schwachstelle in Pidgin ermöglicht Denial-of-Service-Angriff

Es existiert eine Schwachstelle in der Handhabung des MXIT-Protokolls in
Pidgin aufgrund der unzureichenden Überprüfung von Übergabeparametern in der
Funktion ‘command_table’. Dort werden Werte von einem Server ungeprüft als
Parameter in einem Schleifendurchlauf verwendet. Ein entfernter, nicht
authentifizierter Angreifer, der diese Schwachstelle ausnutzt, kann mittels
manipulierter Parameter den Zugriff auf ungültige Speicherbereiche
erzwingen, wodurch die Anwendung abstürzt (Denial-of-Service).

CVE-2016-2365: Schwachstelle in Pidgin ermöglicht Denial-of-Service-Angriff

Durch einen Fehler bei der Verarbeitung von ‘Markup’-Befehlen des
MXIT-Protokolls in Pidgin kann es zu einer Null-Zeiger-Derefenzierung (NULL
Pointer Dereference) kommen. Ein entfernter, nicht authentifizierter
Angreifer oder ein bösartiger Server, welche den Netzwerkverkehr abfangen,
können diese Schwachstelle ausnutzen, indem speziell präparierte, ungültige
MXIT-Daten gesendet werden, und damit einen Absturz von Pidgin verursachen
(Denial-of-Service).

Referenzen:

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

Pidgin Download-Seite:
https://www.pidgin.im/download/

Pidgin MXIT Avatar Length Memory Disclosure Vulnerability:
http://www.talosintel.com/reports/TALOS-2016-0135

Pidgin MXIT CP_SOCK_REC_TERM Denial of Service Vulnerability:
http://www.talosintel.com/reports/TALOS-2016-0137

Pidgin MXIT Contact Mood Denial of Service Vulnerability:
http://www.talosintel.com/reports/TALOS-2016-0141/

Pidgin MXIT Custom Resource Denial of Service Vulnerability:
http://www.talosintel.com/reports/TALOS-2016-0138/

Pidgin MXIT Extended Profiles Code Execution Vulnerability:
http://www.talosintel.com/reports/TALOS-2016-0139/

Pidgin MXIT File Transfer Length Memory Disclosure Vulnerability:
http://www.talosintel.com/reports/TALOS-2016-0140/

Pidgin MXIT HTTP Content-Length Buffer Overflow Vulnerability:
http://www.talosintel.com/reports/TALOS-2016-0119

Pidgin MXIT Markup Command Denial of Service Vulnerability:
http://www.talosintel.com/reports/TALOS-2016-0133

Pidgin MXIT MultiMX Message Code Execution Vulnerability:
http://www.talosintel.com/reports/TALOS-2016-0142/

Pidgin MXIT Protocol User Authentication Hijack Vulnerability :
http://www.talosintel.com/reports/TALOS-2016-0122/

Pidgin MXIT Splash Image Arbitrary File Overwrite Vulnerability:
http://www.talosintel.com/reports/TALOS-2016-0128

Pidgin MXIT Suggested Contacts Memory Disclosure Vulnerability:
http://www.talosintel.com/reports/TALOS-2016-0143/

Pidgin MXIT Table Command Denial of Service Vulnerability:
http://www.talosintel.com/reports/TALOS-2016-0134/

Pidgin MXIT g_snprintf Multiple Buffer Overflow Vulnerabilities:
http://www.talosintel.com/reports/TALOS-2016-0136

Pidgin MXIT get_utf8_string Code Execution Vulnerability:
http://www.talosintel.com/reports/TALOS-2016-0120

Pidgin MXIT mxit_convert_markup_tx Information Leak Vulnerability:
http://www.talosintel.com/reports/TALOS-2016-0123

Pidgin MXIT read stage 0x3 Code Execution Vulnerability:
http://www.talosintel.com/reports/TALOS-2016-0118

Pidgin Security Advisory ID 100 (CVE 2016-2367):
https://www.pidgin.im/news/security/?id=100

Pidgin Security Advisory ID 101 (CVE-2016-2368):
https://www.pidgin.im/news/security/?id=101

Pidgin Security Advisory ID 102 (CVE 2016-2369):
https://www.pidgin.im/news/security/?id=102

Pidgin Security Advisory ID 103 (CVE-2016-2370):
https://www.pidgin.im/news/security/?id=103

Pidgin Security Advisory ID 104 (CVE-2016-2371):
https://www.pidgin.im/news/security/?id=104

Pidgin Security Advisory ID 105 (CVE-2016-2372):
https://www.pidgin.im/news/security/?id=105

Pidgin Security Advisory ID 106 (CVE-2016-2373):
https://www.pidgin.im/news/security/?id=106

Pidgin Security Advisory ID 107 (CVE-2016-2374):
https://www.pidgin.im/news/security/?id=107

Pidgin Security Advisory ID 108 (CVE-2016-2375):
https://www.pidgin.im/news/security/?id=108

Pidgin Security Advisory ID 91:
https://www.pidgin.im/news/security/?id=91

Pidgin Security Advisory ID 92 (CVE-2016-2376):
https://www.pidgin.im/news/security/?id=92

Pidgin Security Advisory ID 93 (CVE-2016-2377):
https://www.pidgin.im/news/security/?id=93

Pidgin Security Advisory ID 94 (CVE-2016-2378):
https://www.pidgin.im/news/security/?id=94

Pidgin Security Advisory ID 95 (CVE-2016-2379):
https://www.pidgin.im/news/security/?id=95

Pidgin Security Advisory ID 96 (CVE-2016-2380):
https://www.pidgin.im/news/security/?id=96

Pidgin Security Advisory ID 97 (CVE-2016-4323):
https://www.pidgin.im/news/security/?id=97

Pidgin Security Advisory ID 98 (CVE-2016-2365):
https://www.pidgin.im/news/security/?id=98

Pidgin Security Advisory ID 99 (CVE-2016-2366):
https://www.pidgin.im/news/security/?id=99

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Talos Vulnerability Spotlight: Pidgin Vulnerabilities:
http://blog.talosintel.com/2016/06/vulnerability-spotlight-pidgin.html

Ubuntu Security Notice USN-3031-1:
http://www.ubuntu.com/usn/usn-3031-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