DFN-CERT-2017-1309 FreeRDP: Mehrere Schwachstellen ermöglichen u.a. das Ausführen beliebigen Programmcodes [Linux][Fedora][Apple][Windows]

Liebe Kolleginnen und Kollegen,

bitte beachten Sie die folgende Sicherheitsmeldung.

Betroffene Software:

FreeRDP

Betroffene Plattformen:

Apple Mac OS X
GNU/Linux
Google Android Operating System
Microsoft Windows
Red Hat Fedora 25
Red Hat Fedora 26

Mehrere Schwachstellen in FreeRDP ermöglichen einem entfernten, nicht
authentisierten Angreifer mittels eines kompromittierten Servers oder als
Mittelsmann im Netzwerk speziell präparierte Pakete zu senden und beliebigen
Programmcode auf dem Client auszuführen oder durch den Absturz des
Empfängerprogramms einen Denial-of-Service-Angriff durchzuführen.

Das FreeRDP-Projekt stellt einen Quellcode-Patch als Sicherheitsupdate zur
Verfügung, um die Schwachstellen zu schließen.

Für Fedora 25 und 26 stehen die Pakete ‘freerdp’ und ‘remmina’ im Status
‘testing’ als Sicherheitsupdates bereit. Remmina ist ein Remote Desktop
Protocol Client, aber nicht direkt von den Schwachstellen betroffen.

Patch:

Fedora Security Update FEDORA-2017-4bc09c2364 (Fedora 26,
freerdp-2.0.0-31.20170724gitf8c9f43.fc26,
remmina-1.2.0-0.39.20170724git0387ee0.fc26)

https://bodhi.fedoraproject.org/updates/FEDORA-2017-4bc09c2364

Patch:

Fedora Security Update FEDORA-2017-ed31e1f941 (Fedora 25,
freerdp-2.0.0-31.20170724gitf8c9f43.fc25,
remmina-1.2.0-0.39.20170724git0387ee0.fc25)

https://bodhi.fedoraproject.org/updates/FEDORA-2017-ed31e1f941

Patch:

FreeRDP Security Advisory 2017-07-24

http://www.freerdp.com/2017/07/24/freerdp-security

CVE-2017-2839: Schwachstelle in FreeRDP ermöglicht Denial-of-Service-Angriff

In der Funktion ‘license_read_platform_challenge_packet’ von FreeRDP wird
der Wert der Rückgabe der Funktion zum Einlesen der Lizenz aus den
Netzwerkpaketen vom Server nicht geprüft. Dadurch wird es möglich, ein
speziell präpariertes Paket mit modifiziertem Wert der Länge der Lizenz zu
senden, mit der Folge, dass die Funktion frühzeitig abbricht und der der
Zeiger auf den Lizenzspeicher mangels Reservierung nicht initialisiert wird.
Die anschließende Dekodierung der Lizenz führt zu einem Zugriff über einen
NULL-Zeiger und das Client-Programm stürzt ab. Ein entfernter, nicht
authentisierter Angreifer kann mittels eines kompromittierten Servers oder
als Mittelsmann im Netzwerk speziell präparierte Pakete senden und durch den
Absturz des Empfängerprogramms einen Denial-of-Service-Angriff durchführen.

CVE-2017-2838: Schwachstelle in FreeRDP ermöglicht Denial-of-Service-Angriff

In der Funktion ‘license_read_product_info’ von FreeRDP wird ein
vorzeichenloser Integer-Wert für die Länge des Firmennamens aus den
Netzwerkpaketen vom Server gelesen und anschließend der Wert 4 für die Größe
des Feldes des Integer-Werts addiert, allerdings ohne Prüfung auf einen
möglichen Überlauf. Auf 64-Bit-Systemen kann dies im weiteren Programmablauf
zum Lesezugriff auf Speicher außerhalb des zugewiesenen Speicherbereichs
führen, wodurch das Client-Programm abstürzt. Ein entfernter, nicht
authentisierter Angreifer kann mittels eines kompromittierten Servers oder
als Mittelsmann im Netzwerk speziell präparierte Pakete senden und durch den
Absturz des Empfängerprogramms einen Denial-of-Service-Angriff durchführen.

CVE-2017-2837: Schwachstelle in FreeRDP ermöglicht Denial-of-Service-Angriff

In der Funktion ‘gcc_read_server_security_data’ von FreeRDP werden zwei
vorzeichenlose Integer-Werte aus den Netzwerkpaketen vom Server gelesen und
anschließend addiert. Ein einfacher Test auf Plausibilität des Ergebniswerts
mit den verbleibenden Daten des Pakets gelingt bei entsprechenden
Integer-Werten, wenn sie einen Integer-Überlauf erzeugen. Die Werte werden
weiterhin für die Reservierung von Speicher und das Kopieren von Daten aus
dem Paket in die reservierten Speicherbereiche benutzt. Dadurch wird es
möglich, ein speziell präpariertes Paket zu senden, mit der Folge, dass die
Funktion einen Lesezugriff außerhalb der Puffergrenzen durchführt und das
Client-Programm abstürzt. Ein entfernter, nicht authentisierter Angreifer
kann mittels eines kompromittierten Servers oder als Mittelsmann im Netzwerk
speziell präparierte Pakete senden und durch den Absturz des
Empfängerprogramms einen Denial-of-Service-Angriff durchführen.

CVE-2017-2836: Schwachstelle in FreeRDP ermöglicht Denial-of-Service-Angriff

In der Funktion ‘certificate_process_server_public_key’ von FreeRDP wird ein
vorzeichenloser Integer-Wert für die Länge des privaten Schlüssels aus den
Netzwerkpaketen vom Server gelesen und anschließend der Wert 8 substrahiert,
allerdings ohne Prüfung auf einen möglichen Unterlauf bei einem Wert kleiner
als 8. Der Wert wird weiterhin für die Reservierung von Speicher und das
Kopieren von Daten aus dem Paket in den reservierten Speicher benutzt.
Dadurch wird es möglich, ein speziell präpariertes Paket zu senden, mit der
Folge, dass die Funktion einen Lesezugriff außerhalb der Puffergrenzen
durchführt und das Client-Programm abstürzt. Ein entfernter, nicht
authentisierter Angreifer kann mittels eines kompromittierten Servers oder
als Mittelsmann im Netzwerk speziell präparierte Pakete senden und durch den
Absturz des Empfängerprogramms einen Denial-of-Service-Angriff durchführen.

CVE-2017-2835: Schwachstelle in FreeRDP ermöglicht Ausführen beliebigen
Programmcodes

In der Funktion ‘rdp_recv_tpkt_pdu’ von FreeRDP werden ein Längenwert und
ein Flag für die Verwendung von Verschlüsselung ohne weitere Prüfungen aus
den Netzwerkpaketen vom Server übernommen. Von der Länge wird der Wert 4
abgezogen und dieser Wert an eine Entschlüsselungsfunktion übergeben.
Dadurch wird es möglich, ein speziell präpariertes Paket mit modifiziertem
Wert der Länge kleiner als dem Wert 4 zu senden, mit der Folge, dass die
Entschlüsselungsfunktion bei einem Integer-Unterlauf über Puffergrenzen
hinaus Daten schreibt. Ein entfernter, nicht authentisierter Angreifer kann
mittels eines kompromittierten Servers oder als Mittelsmann im Netzwerk
speziell präparierte Pakete senden und beliebigen Programmcode auf dem
Client ausführen.

CVE-2017-2834: Schwachstelle in FreeRDP ermöglicht Ausführen beliebigen
Programmcodes

In der Funktion ‘license_recv’ von FreeRDP wird ein Längenwert ohne weitere
Prüfungen aus den Netzwerkpaketen vom Server übernommen. Von der Länge wird
der Wert 4 abgezogen und dieser Wert an eine Entschlüsselungsfunktion
übergeben. Dadurch wird es möglich, ein speziell präpariertes Paket mit
modifiziertem Wert der Länge kleiner als dem Wert 4 zu senden, mit der
Folge, dass die Entschlüsselungsfunktion bei einem Integer-Unterlauf über
Puffergrenzen hinaus Daten schreibt. Ein entfernter, nicht authentisierter
Angreifer kann mittels eines kompromittierten Servers oder als Mittelsmann
im Netzwerk speziell präparierte Pakete senden und beliebigen Programmcode
auf dem Client ausführen.

Referenzen:

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

Cisco Talos Vulnerability Spotlight: FreeRDP Multiple Vulnerabilities:
http://blog.talosintelligence.com/2017/07/vulnerbility-spotlight-freerdp-multiple.html

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

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

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

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

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

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

Fedora Security Update FEDORA-2017-4bc09c2364 (Fedora 26,
freerdp-2.0.0-31.20170724gitf8c9f43.fc26,
remmina-1.2.0-0.39.20170724git0387ee0.fc26):
https://bodhi.fedoraproject.org/updates/FEDORA-2017-4bc09c2364

Fedora Security Update FEDORA-2017-ed31e1f941 (Fedora 25,
freerdp-2.0.0-31.20170724gitf8c9f43.fc25,
remmina-1.2.0-0.39.20170724git0387ee0.fc25):
https://bodhi.fedoraproject.org/updates/FEDORA-2017-ed31e1f941

FreeRDP Security Advisory 2017-07-24:
http://www.freerdp.com/2017/07/24/freerdp-security

TALOS-2017-0336 – “FreeRDP Rdp Client License Recv Code Execution
Vulnerability”:
https://www.talosintelligence.com/vulnerability_reports/TALOS-2017-0336

TALOS-2017-0337 – “FreeRDP Rdp Client Recv RDP Code Execution Vulnerability”:
https://www.talosintelligence.com/vulnerability_reports/TALOS-2017-0337

TALOS-2017-0338 – “FreeRDP Rdp Client Read Server Proprietary Certificate
Denial of Service Vulnerability”:
https://www.talosintelligence.com/vulnerability_reports/TALOS-2017-0338

TALOS-2017-0339 – “FreeRDP Rdp Client GCC Read Server Security Data Denial of
Service Vulnerability”:
https://www.talosintelligence.com/vulnerability_reports/TALOS-2017-0339

TALOS-2017-0340 – “FreeRDP Rdp Client License Read Product Info Denial of
Service Vulnerability”:
https://www.talosintelligence.com/vulnerability_reports/TALOS-2017-0340

TALOS-2017-0341 – “FreeRDP Rdp Client License Read Challenge Packet Denial of
Service Vulnerability”:
https://www.talosintelligence.com/vulnerability_reports/TALOS-2017-0341

(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