Sicherheit: Microsoft Visual C++ Runtime kommt mit alten Wix-Installern und Schwachstellen

[English]Noch ein weiterer Hinweis auf Probleme mit Softwarepaketen aus dem Microsoft-Umfeld. Die von Microsoft bereitgestellten Visual C++ Runtime-Pakete werden mit veralteten Wix-Versionen zu Installer-Paketen zusammen gebaut.


Anzeige

Worum geht es bei  der Visual C++ Runtime?

Für in Visual C++-Programme ist eine Visual C++-Laufzeitumgebung, die VC-Runtime, erforderlich. Microsoft bietet für Windows diverse Versionen seiner Visual C++ Runtime-Umgebung als Redistributable-Pakete an.

Eine Aufstellung der VC-Redistributable-Versionen für Windows findet sich auf dieser Microsoft-Seite. So weit so gut – vielleicht mal abgesehen von der Tatsache, dass es immer mal wieder Ärger mit diesen Paketen gibt und dann Fehlfunktionen bei der Installation und Nutzung von Programmen gibt.

Wandelnde Schwachstelle Visual C++ Runtime?

Leider scheinen die Visual C++ Runtime-Pakete eine wandelnde Sicherheits-Baustelle zu sein. Ich bin heute auf Twitter mal wieder an meine alten Beiträge vom Dezember 2017 erinnert worden.

Nach einem Hinweis von Blog-Leser Karl hatte ich in der Artikelreihe auf potentielle Schwachstellen bei Sicherheitsupdates hingewiesen. Die deutschsprachigen Blog-Beiträge sind in den Artikeln verlinkt. Mit dem Tweet bekommt das Ganze möglicherweise etwas mehr Aufmerksamkeit.

Aber es gibt eine weitere Baustelle, die schon einige Tage bei mir als Thema schlummert und der Veröffentlichung harrt. Stefan Kanthak hat mich auf ein Problem und seinen Mail-Austausch mit Microsoft aufmerksam gemacht. Vor lauter Baustellen komme ich aber erst heute dazu, das aufzubereiten.

Nächste Baustelle Wix-Toolset für die vc-Installer

Es geht um das Wix Toolset, mit dem Microsoft seine Installer-Pakete baut. Auf der Webseite des Anbieters heißt es:

WiX Toolset build tools includes everything you need to create installations on your development and build machines.

Wix-Toolset


Anzeige

Ausweislich des obigen Screenshots ist momentan das WIX Toolset v3.11.1 aktuell. Aufgefallen ist mir, dass die Webseite noch über http angeboten wird – das Toolset selbst wird über GitHub bereitgestellt.  Rob Mensching, ich meine, ein Ex-Microsoft-Mitarbeiter und Entwickler des WIX Toolset (siehe den WikiPedia-Eintrag), bietet auf dem Visual Studio Market Place die Möglichkeit, das Wix Toolset Visual Studio 2017 Extension für Visual Studio (kostenfrei) zu erwerben.

Microsoft nutzt WIX-Toolsets von Anno Dutt

Auf den Microsoft-Download-Seiten für die VC-Redistributable kann man ja die betreffenden Pakete herunterladen. Diese wurden so vor ca. 6 Wochen aktualisiert – was zu begrüßen ist. Stefan Kanthak hat diese Pakete aber seit längerem im Fokus, weil die Installer-Dateien von Microsoft mit dem WIX-Toolset erstellt werden. Das wäre erst einmal nicht schlimm. Aber es gibt 'Merkwürdigkeiten', die ich kurz zusammen stelle:

Die Installationspakete der VC-Redistributables vom Sommer 2018 wurden mit dem WIX Toolset Version 3.7.3813.0 (und älter) erstellt. Bereits im Januar 2016 wurde die Version 3.10.2 des WIX-Toolset freigegeben. Bei FireGiant gibt es einen Artikel, in dem man folgendes lesen kann: 'WiX v3.10.2 is an important security release of WiX. We encourage all users of WiX to upgrade to WiX v3.10.2.' Scheint Microsoft aber nicht zu jucken.

Stefan Kanthak hat sich dann diese VC-Redistributable von Microsoft heruntergeladen und mit ein paar Tools analysiert. Hier die Ergebnisse der Inspektion:

Take 1:
~~~~~~~

| C:\Users\Stefan\Downloads>CURL.exe -q -I -L https://aka.ms/vs/15/release/vc_redist.x86.exe
...
| Last-Modified: Tue, 22 May 2018 17:35:06 GMT

The installer is quite new, published about 10 weeks ago.


Take 2:
~~~~~~~

| C:\Users\Stefan\Downloads>SIGNTOOL.exe Verify /V vc_redist.x86.exe
...
| The signature is timestamped: Tue May 15 08:08:31 2018

The installer was built or digitally signed about 11 weeks ago,
just one week prior to its release.


Take 3:
~~~~~~~

| C:\Users\Stefan\Downloads>FILEVER.exe /V vc_redist.x86.exe
| --a-- W32i   APP ENU   14.14.26429.4 shp 14,611,496 05-22-2018 vc_redist.x86.exe
|
|        Language        0x0409 (Englisch (USA))
|        CharSet         0x04e4 Windows, Multilingual
|        OleSelfRegister Disabled
|        CompanyName     Microsoft Corporation
|        FileDescription Microsoft Visual C++ 2017 Redistributable (x86) - 14.14.26429
|        InternalName    setup
|        OriginalFilenam VC_redist.x86.exe
|        ProductName     Microsoft Visual C++ 2017 Redistributable (x86) - 14.14.26429
|        ProductVersion  14.14.26429.4
|        FileVersion     14.14.26429
|        LegalCopyright  Copyright (c) Microsoft Corporation. All rights reserved.


Take 4:
~~~~~~~

| C:\Users\Stefan\Downloads>LINK.exe /DUMP /HEADERS /DEPENDENTS vc_redist.x86.exe
...
| FILE HEADER VALUES
|              14C machine (x86)
|                7 number of sections
|         54DE53A8 time date stamp Fri Feb 13 20:42:32 2015

Da steckt schon Brisanz drin. Die VC-Redistributable trägt ein Dateidatum vom 15. Mai 2018, wurde aber am 13. Februar 2015 im Linker erstellt. Erstellt wurde die Installationsdatei mit der Laufzeitbibliothek mit dem Wix Toolset 3.7, wie in den folgenden Auszügen erkennbar ist:

Take 4, continued:
~~~~~~~~~~~~~~~~~~

| OPTIONAL HEADER VALUES
|              10B magic # (PE32)
|            10.00 linker version
             ~~~~~
...
|             5.01 operating system version
|             0.00 image version
|             5.01 subsystem version

|  Image has the following dependencies:
|
|    gdiplus.dll
|    ADVAPI32.dll
|    USER32.dll
|    OLEAUT32.dll
|    GDI32.dll
|    SHELL32.dll
|    ole32.dll
|    KERNEL32.dll
|    Cabinet.dll
|    CRYPT32.dll
|    msi.dll
|    RPCRT4.dll
|    WININET.dll
|    WINTRUST.dll
|    VERSION.dll

Debug Directories
|
|        Time Type       Size      RVA  Pointer
|    -------- ------ -------- -------- --------
|    54DE53A8 cv           46 00052F60    51760 ... E:\delivery\Dev\wix37\build\ship\x86\burn.pdb

Ich bin da nicht so fit in der Versionierung – der Installer wurde mit Visual Studio 2010 zur Verwendung unter Windows XP und neueren Versionen erstellt. Im Februar 2015 war Windows XP aber längst aus dem Support gefallen (April 2014 endete der Support). Irgendwie will Microsoft wohl noch die alte Plattform unterstützen, stolpert aber über die alten Probleme.

Im Auszug sieht man zudem, dass eine ganze Sammlung an DLLs als Abhängigkeiten enthalten sind. Diese werden von Windows nicht als 'known DLLs' angesehen. Sprich: Bei der Installation könnte Malware diese Dateien im Verzeichnis mit den Installationsdateien ersetzen und sich in die Installation einklinken. Ich hatte die Problematik im Artikel Classic Shell heißt jetzt Open-Shell-Menü angesprochen.

Die Liste der Probleme, die Stefan Kanthak mir geschickt hat, geht in diesem Gusto weiter – ich erspare deren Wiedergabe. Es ist eine Folge von Fehlern, die Sicherheitslücke um Sicherheitslücke aufreißen. Und Microsoft verteilt das Ganze auf Millionen Windows-Maschinen. Kanthak hat versucht, Microsoft auf das Thema aufmerksam zu machen, ohne dass was passiert. Die Kollegen bei The Register haben das gerade aufgegriffen. Was läuft da momentan bei Microsoft?


Cookies blockieren entzieht uns die Finanzierung: Cookie-Einstellungen

Dieser Beitrag wurde unter Sicherheit abgelegt und mit , verschlagwortet. Setze ein Lesezeichen auf den Permalink.

8 Antworten zu Sicherheit: Microsoft Visual C++ Runtime kommt mit alten Wix-Installern und Schwachstellen

  1. Swedish Chef sagt:

    Und täglich grüßt das Murmeltier…

  2. "Was läuft da momentan bei Microsoft?"

    Momentan?
    Microsoft schlampt seit VIELEN Jahren und macht immer wieder dieselben blutigen Anfängerfehler.
    "software engineering", "defense in depth", "trustworthy computing" sind FREMDWÖRTER, es fehlen die GRUNDLAGEN!
    Beispiele siehe http://seclists.org/bugtraq/2012/Aug/65, http://seclists.org/fulldisclosure/2014/Dec/102

  3. Dalai sagt:

    MS bekommt es noch nicht einmal gebacken, die aktuellen Runtimes ihrer eigenen Software beizulegen. Stattdessen liefern sie (potentiell) verwundbare Runtimes aus. Beispiel SQL Server 2017. Dessen ISO wurde im August 2018 zusammengebaut und im Oktober 2017 wurde der SQL Server 2017 veröffentlicht. Auf dem ISO befindet sich VC++ 2015 Version 14.0.23506.0.

    Die folgenden Versionen der VC++ Runtimes 2015 sind – laut Versionsnummer – allesamt neuer als die mitgelieferte, veröffentlicht zwischen März und August 2016:
    14.0.23918.0
    14.0.24210.0
    14.0.24212.0
    14.0.24215.1

    Eigentlich könnten sie sogar die 2017er (Versionen 14.10 bis 14.15) beilegen, weil diese ja die 2015er komplett ersetzt. Aber das hat vielleicht Gründe.

    Grüße

  4. Martin Feuerstein sagt:

    Dann hoffen wir mal, dass der Stefan Kanthak noch keinen Herzinfarkt erlitten hat.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Hinweis: Bitte beachtet die Regeln zum Kommentieren im Blog (Erstkommentare und Verlinktes landet in der Moderation, gebe ich alle paar Stunden frei, SEO-Posts/SPAM lösche ich rigoros). Kommentare abseits des Themas bitte unter Diskussion.