---
TOCTitle: 4021279
Title: 'Microsoft-Sicherheitsempfehlung 4021279'
ms:assetid: 4021279
ms:contentKeyID: 74445687
ms:mtpsurl: 'https://technet.microsoft.com/de-DE/library/4021279(v=Security.10)'
---
Microsoft-Sicherheitsempfehlung 4021279
=======================================
Sicherheitsanfälligkeiten in .NET Core und ASP.NET Core können Rechteerweiterungen ermöglichen
----------------------------------------------------------------------------------------------
Veröffentlicht: 9. Mai 2017
**Version:** 1.0
Kurzzusammenfassung
-------------------
Microsoft veröffentlicht diese Sicherheitsempfehlung, um Informationen zu Sicherheitsanfälligkeiten in der öffentlichen Version von .NET Core und ASP.NET Core bereitzustellen. Diese Empfehlung bietet auch eine Anleitung zu den Maßnahmen, die Entwickler ergreifen können, um ihre Anwendungen ordnungsgemäß zu aktualisieren.
.NET Core und ASP.NET Core sind die nächste Generation der .NET-Produktfamilie und bieten ein vertrautes und modernes Framework für Web- und Cloudszenarien. Diese Produkte werden vom .NET- und ASP.NET-Team in Zusammenarbeit mit der Open-Source-Entwicklercommunity für Windows, Mac OS X und Linux aktiv entwickelt. Bei der Veröffentlichung von .NET Core wurde die Versionsnummer auf 1.0.0 zurückgesetzt, um der Tatsache gerecht zu werden, dass es sich im Vergleich zur .NET-Vorgängerversion um ein separates Produkt handelt.
Betroffene Software
-------------------
Die Sicherheitsanfälligkeiten betreffen alle Microsoft .NET Core-Projekte mit den folgenden anfälligen Paketversionen.
<p> </p>
<table style="border:1px solid black;">
<tr>
<td style="border:1px solid black;" colspan="3">
**Betroffenes Paket und betroffene Version**
</td>
</tr>
<tr>
<td style="border:1px solid black;">
**Paketname**
</td>
<td style="border:1px solid black;">
**Paketversionen**
</td>
<td style="border:1px solid black;">
**Korrigierte Paketversionen**
</td>
</tr>
<tr>
<td style="border:1px solid black;">
System.Text.Encodings.Web
</td>
<td style="border:1px solid black;">
4.0.0  
4.3.0
</td>
<td style="border:1px solid black;">
4.0.1  
4.3.1
</td>
</tr>
<tr>
<td style="border:1px solid black;">
System.Net.Http
</td>
<td style="border:1px solid black;">
4.1.1  
4.3.1
</td>
<td style="border:1px solid black;">
4.1.2  
4.3.2
</td>
</tr>
<tr>
<td style="border:1px solid black;">
System.Net.Http.WinHttpHandler
</td>
<td style="border:1px solid black;">
4.0.1  
4.3.0
</td>
<td style="border:1px solid black;">
4.0.2  
4.3.1
</td>
</tr>
<tr>
<td style="border:1px solid black;">
System.Net.Security
</td>
<td style="border:1px solid black;">
4.0.0  
4.3.0
</td>
<td style="border:1px solid black;">
4.0.1  
4.3.1
</td>
</tr>
<tr>
<td style="border:1px solid black;">
System.Net.WebSockets.Client
</td>
<td style="border:1px solid black;">
4.0.0  
4.3.0
</td>
<td style="border:1px solid black;">
4.0.1  
4.3.1
</td>
</tr>
<tr>
<td style="border:1px solid black;">
Microsoft.AspNetCore.Mvc
</td>
<td style="border:1px solid black;">
1.0.0, 1.0.1, 1.0.2, 1.0.3  
1.1.0, 1.1.1, 1.1.2
</td>
<td style="border:1px solid black;">
1.0.4  
1.1.3
</td>
</tr>
<tr>
<td style="border:1px solid black;">
Microsoft.AspNetCore.Mvc.Core
</td>
<td style="border:1px solid black;">
1.0.0, 1.0.1, 1.0.2, 1.0.3  
1.1.0, 1.1.1, 1.1.2
</td>
<td style="border:1px solid black;">
1.0.4  
1.1.3
</td>
</tr>
<tr>
<td style="border:1px solid black;">
Microsoft.AspNetCore.Mvc.Abstractions
</td>
<td style="border:1px solid black;">
1.0.0, 1.0.1, 1.0.2, 1.0.3  
1.1.0, 1.1.1, 1.1.2
</td>
<td style="border:1px solid black;">
1.0.4  
1.1.3
</td>
</tr>
<tr>
<td style="border:1px solid black;">
Microsoft.AspNetCore.Mvc.ApiExplorer
</td>
<td style="border:1px solid black;">
1.0.0, 1.0.1, 1.0.2, 1.0.3  
1.1.0, 1.1.1, 1.1.2
</td>
<td style="border:1px solid black;">
1.0.4  
1.1.3
</td>
</tr>
<tr>
<td style="border:1px solid black;">
Microsoft.AspNetCore.Mvc.Cors
</td>
<td style="border:1px solid black;">
1.0.0, 1.0.1, 1.0.2, 1.0.3  
1.1.0, 1.1.1, 1.1.2
</td>
<td style="border:1px solid black;">
1.0.4  
1.1.3
</td>
</tr>
<tr>
<td style="border:1px solid black;">
Microsoft.AspNetCore.Mvc.DataAnnotations
</td>
<td style="border:1px solid black;">
1.0.0, 1.0.1, 1.0.2, 1.0.3  
1.1.0, 1.1.1, 1.1.2
</td>
<td style="border:1px solid black;">
1.0.4  
1.1.3
</td>
</tr>
<tr>
<td style="border:1px solid black;">
Microsoft.AspNetCore.Mvc.Formatters.Json
</td>
<td style="border:1px solid black;">
1.0.0, 1.0.1, 1.0.2, 1.0.3  
1.1.0, 1.1.1, 1.1.2
</td>
<td style="border:1px solid black;">
1.0.4  
1.1.3
</td>
</tr>
<tr>
<td style="border:1px solid black;">
Microsoft.AspNetCore.Mvc.Formatters.Xml
</td>
<td style="border:1px solid black;">
1.0.0, 1.0.1, 1.0.2, 1.0.3  
1.1.0, 1.1.1, 1.1.2
</td>
<td style="border:1px solid black;">
1.0.4  
1.1.3
</td>
</tr>
<tr>
<td style="border:1px solid black;">
Microsoft.AspNetCore.Mvc.Localization
</td>
<td style="border:1px solid black;">
1.0.0, 1.0.1, 1.0.2, 1.0.3  
1.1.0, 1.1.1, 1.1.2
</td>
<td style="border:1px solid black;">
1.0.4  
1.1.3
</td>
</tr>
<tr>
<td style="border:1px solid black;">
Microsoft.AspNetCore.Mvc.Razor.Host
</td>
<td style="border:1px solid black;">
1.0.0, 1.0.1, 1.0.2, 1.0.3  
1.1.0, 1.1.1, 1.1.2
</td>
<td style="border:1px solid black;">
1.0.4  
1.1.3
</td>
</tr>
<tr>
<td style="border:1px solid black;">
Microsoft.AspNetCore.Mvc.Razor
</td>
<td style="border:1px solid black;">
1.0.0, 1.0.1, 1.0.2, 1.0.3  
1.1.0, 1.1.1, 1.1.2
</td>
<td style="border:1px solid black;">
1.0.4  
1.1.3
</td>
</tr>
<tr>
<td style="border:1px solid black;">
Microsoft.AspNetCore.Mvc.TagHelpers
</td>
<td style="border:1px solid black;">
1.0.0, 1.0.1, 1.0.2, 1.0.3  
1.1.0, 1.1.1, 1.1.2
</td>
<td style="border:1px solid black;">
1.0.4  
1.1.3
</td>
</tr>
<tr>
<td style="border:1px solid black;">
Microsoft.AspNetCore.Mvc.ViewFeatures
</td>
<td style="border:1px solid black;">
1.0.0, 1.0.1, 1.0.2, 1.0.3  
1.1.0, 1.1.1, 1.1.2
</td>
<td style="border:1px solid black;">
1.0.4  
1.1.3
</td>
</tr>
<tr>
<td style="border:1px solid black;">
Microsoft.AspNetCore.Mvc.WebApiCompatShim
</td>
<td style="border:1px solid black;">
1.0.0, 1.0.1, 1.0.2, 1.0.3  
1.1.0, 1.1.1, 1.1.2
</td>
<td style="border:1px solid black;">
1.0.4  
1.1.3
</td>
</tr>
</table>
 
Häufig gestellte Fragen (FAQ) zur Empfehlung
--------------------------------------------
Wie kann ich feststellen, ob ich betroffen bin?   
.NET Core und ASP.NET Core weisen zwei Arten von Abhängigkeiten auf: direkte und transitive. Wenn Ihr Projekt eine direkte oder transitive Abhängigkeit von oben aufgeführten Paketen aufweist, sind Sie betroffen.
> [!NOTE]  
> Beim Patchen von ASP.NET Core MVC werden alle Pakete mit dem Namen „Microsoft.AspNetCore.Mvc.*“ aktualisiert. Wenn Sie beispielsweise eine Abhängigkeit von „Microsoft.AspNetCore.Mvc“ haben, sollten Sie zunächst auf die entsprechende Version aktualisieren (Version 1.0.x sollte auf 1.0.4 aktualisiert werden, Version 1.1.x sollte auf 1.1.3 aktualisiert werden), damit auch andere anfällige Microsoft.AspNetCore.Mvc-Abhängigkeiten aktualisiert werden.
.NET Core-Projektformate
------------------------
.NET Core verfügt über zwei verschiedene Projektdateiformate, die jeweils von der Software abhängen, mit der das Projekt erstellt wurde.
1.  „project.json“ ist das ursprüngliche Format und ist in .NET Core 1.0 sowie in Microsoft Visual Studio 2015 enthalten.
2.  Das Format „csproj“ wird in Microsoft Visual Studio 2017 verwendet.
Achten Sie darauf, die richtigen Aktualisierungsanweisungen für Ihren Projekttyp auszuführen.
Direkte Abhängigkeiten
----------------------
**Direkte Abhängigkeiten** liegen vor, wenn Sie ein Paket Ihrem Projekt ausdrücklich hinzufügen. Wenn Sie z. B. Ihrem Projekt das Paket „Microsoft.AspNetCore.Mvc“ hinzufügen, haben Sie eine direkte Abhängigkeit von „Microsoft.AspNetCore.Mvc“ übernommen.
Direkte Abhängigkeiten lassen sich durch Überprüfen der Datei „project.json“ oder Ihrer CSPROJ-Datei erkennen.
Transitive Abhängigkeiten
-------------------------
**Transitive Abhängigkeiten** treten auf, wenn Sie ein Paket zu Ihrem Projekt hinzufügen, das seinerseits von einem anderen Paket abhängig ist. Wenn Sie z. B. Ihrem Projekt das Paket „Microsoft.AspNetCore.Mvc“ hinzufügen, hängt es (unter anderem) vom Paket „Microsoft.AspNetCore.Mvc.Core“ ab. Ihr Projekt weist eine direkte Abhängigkeit vom Paket „Microsoft.AspNetCore.Mvc“ und eine transitive Abhängigkeit von „Microsoft.AspNetCore.Mvc.Core“ auf.
Transitive Abhängigkeiten lassen sich für project.json-Projekte in Visual Studio im Fenster „Projektmappen-Explorer“, das auch Suchen unterstützt, oder in der Datei „project.lock.json“ überprüfen, die im Stammverzeichnis des Projekts enthalten sind. Für csproj-Projekte kann die Datei „project.assets.json“ im Verzeichnis „obj“ Ihres Projekts überprüft werden. Diese Dateien bilden die autoritative Liste aller in Ihrem Projekt verwendeten Pakete. Sie enthält sowohl direkte als auch transitive Abhängigkeiten.
Wie kann ich meine betroffene Anwendung reparieren?
---------------------------------------------------
Sie müssen sowohl direkte Abhängigkeiten korrigieren als auch alle transitiven Abhängigkeiten überprüfen und korrigieren. Für die oben aufgeführten betroffenen Paketen und Versionen sollten jeweils die anfälligen Pakete, die anfälligen Versionen und die korrigierten Versionen angegeben sein.
Wenn Sie ASP.NET Core MVC für Ihre Projekte verwenden, sollten Sie zunächst die Version von „Microsoft.AspNetCore.Mvc“ gemäß der obigen Tabelle mit den betroffenen Versionen aktualisieren. Wenn Sie aktuell Version 1.0.0, 1.0.1, 1.0.2 oder 1.0.3 verwenden, sollten Sie Ihr Paket auf Version 1.0.4 aktualisieren. Wenn Sie Version 1.1.0, 1.1.1 oder 1.1.2 verwenden, sollten Sie Ihr Paket auf Version 1.1.3 aktualisieren. Dadurch werden alle MVC-Pakete auf die korrigierten Versionen aktualisiert.
### Korrigieren direkter Abhängigkeiten – project.json/VS2015
Öffnen Sie die Datei „project.json“ im Editor. Suchen Sie den Abschnitt für Abhängigkeiten („dependencies“). Im Folgenden sehen Sie ein Beispiel für den Abschnitt „Abhängigkeiten“:
  ```
  "dependencies": {
      "Microsoft.NETCore.App": {
        "version": "1.0.1",
        "type": "platform"
      },
      "Microsoft.AspNetCore.Server.Kestrel": "1.0.1",
      "Microsoft.AspNetCore.Mvc ": "1.0.1",
      
    }
  ```
Dieses Beispiel beinhaltet drei direkte Abhängigkeiten: „Microsoft.NETCore.App“, „Microsoft.AspNetCore.Server.Kestrel“ und „Microsoft.AspNetCore.Mvc“.
„Microsoft.NetCore.App“ ist die Plattform der Anwendung und kann ignoriert werden. Für die anderen Pakete wird die Version rechts neben dem Paketnamen angezeigt. In diesem Beispiel liegen die Nicht-Plattform-Pakete in der Version 1.0.1 vor.
Überprüfen Sie Ihre direkten Abhängigkeiten auf Instanzen der oben aufgeführten Pakete und Versionen. Im obigen Beispiel ist eine direkte Abhängigkeit von einem der anfälligen Pakete („Microsoft.AspNetCore.Mvc“, Version 1.0.1) vorhanden.
Zum Aktualisieren auf das korrigierte Paket ändern Sie die Versionsnummer in die entsprechende Paketversion. In diesem Beispiel würde „Microsoft.AspNetCore.Mvc“ auf Version 1.0.4 aktualisiert.
Nachdem Sie die anfälligen Paketversionen aktualisiert haben, speichern Sie die Datei „project.json“.
Der Abschnitt „dependencies“ in unserer Beispieldatei „project.json“ sieht jetzt folgendermaßen aus:
  ```
  "dependencies": {
      "Microsoft.NETCore.App": {
        "version": "1.0.1",
        "type": "platform"
      },
      "Microsoft.AspNetCore.Server.Kestrel": "1.0.1",
      "Microsoft.AspNetCore.Mvc": "1.0.4",
        
    }
  ```
Wenn Sie Visual Studio verwenden und die aktualisierte Datei „project.json“ gespeichert haben, stellt Visual Studio die neue Paketversion wieder her. Sie können die Ergebnisse der Wiederherstellung anzeigen, indem Sie das Ausgabefenster öffnen (Strg+Alt+O) und in der Dropdownliste **Ausgabe anzeigen von** zur Option **Paket-Manager** wechseln.
Wenn Sie Visual Studio nicht verwenden, öffnen Sie eine Befehlszeile, und wechseln Sie zu Ihrem Projektverzeichnis. Führen Sie den Befehl **dotnet restore** aus, um die neue Abhängigkeit wiederherzustellen.
Nachdem Sie sich mit allen direkten Abhängigkeiten befasst haben, müssen Sie auch Ihre transitiven Abhängigkeiten überprüfen.
### Korrigieren direkter Abhängigkeiten – csproj/VS2017
Öffnen Sie die Datei *„projektname*.csproj“ im Editor, oder klicken Sie in Visual Studio 2017 mit der rechten Maustaste auf das Projekt, und wählen Sie im Inhaltsmenü die Option *„projektname*.csproj bearbeiten“, wobei *projektname* der Name Ihres Projekts ist. Suchen Sie nach PackageReference-Knoten. Im Folgenden sehen Sie ein Beispiel für eine Projektdatei:
  ```
  <Project Sdk="Microsoft.NET.Sdk.Web">
    <PropertyGroup>
      <TargetFramework>netcoreapp1.1</TargetFramework>
    </PropertyGroup>
    <PropertyGroup>
      <PackageTargetFallback>$(PackageTargetFallback);portable-net45+win8+wp8+wpa81;</PackageTargetFallback>
    </PropertyGroup>
    <ItemGroup>
      <PackageReference Include="Microsoft.AspNetCore" Version="1.1.1" />
      <PackageReference Include="Microsoft.AspNetCore.Mvc" Version="1.1.2" />
    </ItemGroup>
    <ItemGroup>
      <DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="1.0.0 " />
    </ItemGroup>
  </Project>
  ```
 
Das Beispiel weist zwei direkte Paketabhängigkeiten auf, wie an den beiden PackageReference-Elementen zu erkennen ist. Der Paketname befindet sich im Include-Attribut, und die Paketversionsnummer befindet sich im Version-Attribut und ist rechts neben dem Paketnamen angegeben. Das Beispiel zeigt die zwei Pakete „Microsoft.AspNetCore“, Version 1.1.1, und „Microsoft.AspNetCore.Mvc.Core“, Version 1.1.2.
Überprüfen Sie Ihre PackageReference-Elemente auf Instanzen der oben aufgeführten Pakete und Versionen. Im obigen Beispiel ist eine direkte Abhängigkeit von einem der anfälligen Pakete („Microsoft.AspNetCore.Mvc“, Version 1.1.2) vorhanden.
Zum Aktualisieren auf das korrigierte Paket ändern Sie die Versionsnummer in die entsprechende Paketversion. In diesem Beispiel würde „Microsoft.AspNetCore.Mvc“ auf Version 1.1.3 aktualisiert.
Nachdem Sie die anfällige Paketversion aktualisiert haben, speichern Sie die CSPROJ-Datei.
Die CSPROJ-Beispieldatei sieht dann wie folgt aus:
  ```
  <Project Sdk="Microsoft.NET.Sdk.Web">
    <PropertyGroup>
      <TargetFramework>netcoreapp1.1</TargetFramework>
    </PropertyGroup>
    <PropertyGroup>
      <PackageTargetFallback>$(PackageTargetFallback);portable-net45+win8+wp8+wpa81;</PackageTargetFallback>
    </PropertyGroup>
    <ItemGroup>
      <PackageReference Include="Microsoft.AspNetCore" Version="1.1.1" />
      <PackageReference Include="Microsoft.AspNetCore.Mvc.Core" Version="1.1.3" />
    </ItemGroup>
    <ItemGroup>
      <DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="1.0.0 " />
    </ItemGroup>
  </Project>
  ```
Wenn Sie Visual Studio verwenden und die aktualisierte CSPROJ-Datei gespeichert haben, stellt Visual Studio die neue Paketversion wieder her. Sie können die Ergebnisse der Wiederherstellung anzeigen, indem Sie das Ausgabefenster öffnen (Strg+Alt+O) und in der Dropdownliste **Ausgabe anzeigen von** zur Option **Paket-Manager** wechseln.
Wenn Sie Visual Studio nicht verwenden, öffnen Sie eine Befehlszeile, und wechseln Sie zu Ihrem Projektverzeichnis. Führen Sie den Befehl **dotnet restore** aus, um die neue Abhängigkeit wiederherzustellen.
Kompilieren Sie Ihre Anwendung erneut.
Falls nach der Neukompilierung eine Warnung wegen eines Abhängigkeitskonflikts angezeigt wird, müssen Sie Ihre anderen direkten Abhängigkeiten auf die entsprechende Version aktualisieren. Angenommen, Ihr Projekt verweist auf „Microsoft.AspNetCore.Routing“ mit der Versionsnummer 1.0.1. Wenn Sie Ihr Paket „Microsoft.AspNetCore.Mvc“ auf Version 1.0.4 aktualisieren, wird beim Kompilieren folgende Warnung ausgegeben:
NU1012 Dependency conflict. Microsoft.AspNetCore.Mvc.Core 1.0.4 expected Microsoft.AspNetCore.Routing &gt;= 1.0.4 but received 1.0.1
Zur Behebung dieses Problems ändern Sie die Version des erwarteten Pakets in die erwartete Version, indem Sie Ihre CSPROJ-Datei oder Ihre Datei „project.json“ auf dieselbe Weise wie die anfälligen Paketversionen aktualisieren.
Nachdem Sie sich mit allen direkten Abhängigkeiten befasst haben, müssen Sie auch Ihre transitiven Abhängigkeiten überprüfen.
### Überprüfen transitiver Abhängigkeiten
Zum Anzeigen transitiver Abhängigkeiten gibt es zwei Möglichkeiten. Sie können den Projektmappen-Explorer von Visual Studio verwenden oder die Datei „project.lock.json“ (project.json/VS2015) oder „project.assets.json“ (csproj/VS2017) überprüfen.
#### Verwenden des Projektmappen-Explorers von Visual Studio (VS2015)
Wenn Sie Visual Studio 2015 verwenden möchten, öffnen Sie Ihr Projekt in Visual Studio 2015, und drücken Sie dann Strg+;, um die Suche im Projektmappen-Explorer zu aktivieren. Suchen Sie nach den Namen der anfälligen Pakete, und notieren Sie die Versionsnummern aller Ergebnisse.
Wenn Sie z. B. ein Beispielprojekt nach „Microsoft.AspNetCore.Mvc.Core“ durchsuchen, das einen Verweis auf „Microsoft.AspNetCore.Mvc“ enthält, werden in Visual Studio 2015 die folgenden Ergebnisse angezeigt.
![](../../images/Mt808804.948623F12A9577D9AC6FF8F5CA46F8CA(de-DE,Security.10).png)
Abbildung 1: Suchen nach Verweisen in Visual Studio 2015
Die Suchergebnisse werden in einer Struktur angezeigt. In diesen Ergebnissen sehen Sie, dass Verweise auf „Microsoft.AspNetCore.Mvc“, Version 1.0.1 – die anfällige Version – gefunden wurden.
Der erste Eintrag unter der Überschrift „Verweise“ bezieht sich auf das Zielframework, das Ihre Anwendung verwendet. Je nach Konfiguration Ihrer Anwendung handelt es sich dabei um .NETCoreApp, .NETStandard oder .NET-Framework-vX.Y.Z (X.Y.Z ist eine aktuelle Versionsnummer). Unter dem Zielframework wird die Liste der Pakete angezeigt, von denen eine direkte Abhängigkeit besteht. In diesem Beispiel besteht eine Abhängigkeit der Anwendung von „Microsoft.AspNetCore.Mvc“. „Microsoft.AspNetCore.Mvc“ enthält seinerseits Endknoten, in denen die Abhängigkeiten dieses Pakets und die jeweiligen Versionen aufgeführt sind. In diesem Fall weist das Paket „Microsoft.AspNetCore.Mvc“ eine Abhängigkeit von einer anfälligen Version von „Microsoft.AspNetCore.Mvc.Core“ und zahlreichen anderen Paketen auf.
#### Manuelles Überprüfen von „project.lock.json“ (project.json/VS2015)
Öffnen Sie die Datei „project.lock.json“ im Editor. Wir empfehlen die Verwendung eines Editors, der das json-Format unterstützt und Ihnen das Erweitern und Reduzieren von Knoten ermöglicht, um diese Datei zu überprüfen; sowohl Visual Studio als auch Visual Studio Code bieten diese Funktionen.
Wenn Sie Visual Studio verwenden, befindet sich die Datei „project.lock.json“ unterhalb der Datei „project.json“. Klicken Sie links neben der Datei „project.json“ auf das Dreieck nach rechts (▷), um die Projektmappenstruktur zu erweitern, sodass die Datei „project.lock.json“ angezeigt wird. Abbildung 1 unten zeigt ein Projekt, in der die Datei „project.json“ erweitert ist und die Datei „project.lock.json“ angezeigt wird.
![](../../images/Mt808804.10871F6DAB46208F3A20B4D79DC43612(de-DE,Security.10).png)
Abbildung 2: Speicherort der Datei „project.lock.json“
Suchen Sie in der Datei „project.lock.json“ nach der Zeichenfolge „Microsoft.AspNetCore.Mvc.Core/1.1.0“. Wenn Ihre project.lock.json-Datei diese Zeichenfolge enthält, besteht eine Abhängigkeit vom anfälligen Paket.[](https://technet.microsoft.com/de-DE/library/advisory_(v=Security.10))
#### Korrigieren transitiver Abhängigkeiten (project.json/VS2015)
Wenn Sie keinen Verweis auf anfällige Pakete gefunden haben, hängt entweder keine Ihrer direkten Abhängigkeiten von anfälligen Paketen ab, oder Sie haben das Problem durch Aktualisierung der direkten Abhängigkeiten bereits behoben.
Wenn bei der Überprüfung der transitiven Abhängigkeiten Verweise auf anfällige Pakete gefunden wurden, muss Ihrer Datei „project.json“ eine direkte Abhängigkeit vom aktualisierten Paket hinzugefügt werden, um die transitive Abhängigkeit zu überschreiben. Öffnen Sie die Datei „project.json“, und suchen Sie den Abschnitt „dependencies“. Beispiel:
  ```
  "dependencies": {
      "Microsoft.NETCore.App": {
        "version": "1.0.1",
        "type": "platform"
      },
      "Microsoft.AspNetCore.Server.Kestrel": "1.1.0",
      "Microsoft.AspNetCore.Mvc": "1.1.0"
    }
  ```
Für jedes der anfälligen Pakete hat die Suche ergeben, dass eine direkte Abhängigkeit von einer aktualisierten Version des Pakets zur Datei „project.json“ hinzugefügt werden muss. Dazu können Sie im Abschnitt „dependencies“ eine neue Zeile hinzufügen, die auf die korrigierte Version verweist. Wenn beispielsweise die Suche einen intransitiven Verweis auf das anfällige Paket „System.Net.Security“ mit der Version 4.0.0 ergeben hat, würden Sie einen Verweis auf die entsprechende korrigierte Version 4.0.1 hinzufügen. Bearbeiten Sie die Datei „project.json“ wie folgt:
  ```
  "dependencies": {
      "Microsoft.NETCore.App": {
        "version": "1.0.1",
        "type": "platform"
      },
      "System.Net.Security": "4.0.1",
      "Microsoft.AspNetCore.Server.Kestrel": "1.1.0",
      "Microsoft.AspNetCore.Mvc": "1.1.1"
    }
  ```
Nachdem Sie den korrigierten Paketen direkte Abhängigkeiten hinzugefügt haben, speichern Sie die Datei „project.json“.
Wenn Sie Visual Studio verwenden, speichern Sie die aktualisierte Datei „project.json“, damit Visual Studio die neuen Paketversionen wiederherstellt. Sie können die Ergebnisse der Wiederherstellung anzeigen, indem Sie das Ausgabefenster öffnen (Strg+Alt+O) und in der Dropdownliste **Ausgabe anzeigen von** zur Option **Paket-Manager** wechseln.
Wenn Sie Visual Studio nicht verwenden, öffnen Sie eine Befehlszeile, und wechseln Sie zu Ihrem Projektverzeichnis. Führen Sie den Befehl **dotnet restore** aus, um die neuen Abhängigkeiten wiederherzustellen.
#### Verwenden des Projektmappen-Explorers von Visual Studio (VS2017)
Wenn Sie den Projektmappen-Explorer verwenden möchten, öffnen Sie Ihr Projekt in Visual Studio 2017, und drücken Sie dann Strg+;, um die Suche im Projektmappen-Explorer zu aktivieren. Suchen Sie nach den Namen der anfälligen Pakete, und notieren Sie die Versionsnummern aller Ergebnisse.[](https://technet.microsoft.com/de-DE/library/advisory_(v=Security.10))
Wenn ein Projekt z. B. ein Paket enthält, bei dem eine Abhängigkeit von „Microsoft.AspNetCore.Mvc“ besteht, und Sie in diesem Projekt nach „Microsoft.AspNetCore.Mvc.Core“ suchen, werden in Visual Studio 2017 die folgenden Ergebnisse angezeigt:
![](../../images/Mt808804.CF4A614A1C2C51FE9505E3379A83E8D6(de-DE,Security.10).png)
Abbildung 3: Suchen nach Verweisen in Visual Studio 2017
Die Suchergebnisse werden in einer Struktur angezeigt. In diesen Ergebnissen sehen Sie, dass Verweise auf „Microsoft.AspNetCore.Mvc.Core“, Version 1.1.2 gefunden wurden.
Unter dem Abhängigkeitsknoten befindet sich ein NuGet-Knoten. Unter dem NuGet-Knoten wird die Liste der Pakete mit zugehörigen Version angezeigt, von denen eine direkte Abhängigkeit besteht. In diesem Beispiel besteht eine direkte Abhängigkeit der Anwendung von „Microsoft.AspNetCore.Mvc“. „Microsoft.AspNetCore.Mvc“ enthält seinerseits Endknoten, in denen die Abhängigkeiten dieses Pakets und die jeweiligen Versionen aufgeführt sind. Im Beispiel weist das Paket „Microsoft.AspNetCore.Mvc“ eine Abhängigkeit von einer Version von „Microsoft.AspNetCore.Mvc.ApiExplorer“, die wiederum von einer anfälligen Version von „Microsoft.AspNetCore.Mvc.Core“anhängig ist.
#### Manuelles Überprüfen von „project.assets.json“ (VS2017)
Öffnen Sie die Datei „project.assets.json“ aus dem Verzeichnis „obj“ in Ihrem Editor. Wir empfehlen die Verwendung eines Editors, der das json-Format unterstützt und Ihnen das Erweitern und Reduzieren von Knoten ermöglicht, um diese Datei zu überprüfen; sowohl Visual Studio als auch Visual Studio Code bieten diese Funktionen.
Durchsuchen Sie die Datei „project.assets.json“ nach den Paketnamen in der Tabelle mit den anfälligen Paketen, und geben Sie „/“ nach dem Paketnamen ein. Wenn Sie beispielsweise nach „Microsoft.AspNetCore.Mvc“ suchen, würden Sie die Suchzeichenfolge „Microsoft.AspNetCore.Mvc/“ verwenden. Wenn die Datei „project.assets.json“ diese Zeichenfolge enthält und die vollständige Versionsnummer (die Zahl nach dem „/“ in Suchergebnissen) einer der oben aufgeführten anfälligen Versionen entspricht, besteht eine Abhängigkeit vom anfälligen Paket.[](https://technet.microsoft.com/de-DE/library/advisory_(v=Security.10))
#### Korrigieren transitiver Abhängigkeiten (csproj/VS2017)
Wenn Sie keinen Verweis auf anfällige Pakete gefunden haben, hängt entweder keine Ihrer direkten Abhängigkeiten von anfälligen Paketen ab, oder Sie haben das Problem durch Aktualisierung der direkten Abhängigkeiten bereits behoben.
Wenn bei der Überprüfung der transitiven Abhängigkeiten Verweise auf anfällige Pakete gefunden wurden, muss Ihrer CSPROJ-Datei eine direkte Abhängigkeit vom aktualisierten Paket hinzugefügt werden, um die transitive Abhängigkeit zu überschreiben. Öffnen Sie die Datei *„projektname*.csproj“ im Editor, oder klicken Sie in Visual Studio 2017 mit der rechten Maustaste auf das Projekt, und wählen Sie im Inhaltsmenü die Option *„projektname*.csproj bearbeiten“, wobei „projektname“ der Name Ihres Projekts ist. Suchen Sie nach PackageReference-Knoten, z. B.:
  ```
  <Project Sdk="Microsoft.NET.Sdk.Web">
    <PropertyGroup>
      <TargetFramework>netcoreapp1.1</TargetFramework>
    </PropertyGroup>
    <PropertyGroup>
      <PackageTargetFallback>$(PackageTargetFallback);portable-net45+win8+wp8+wpa81;</PackageTargetFallback>
    </PropertyGroup>
    <ItemGroup>
      <PackageReference Include="Microsoft.AspNetCore" Version="1.1.1" />
      <PackageReference Include="Microsoft.AspNetCore.Mvc" Version="1.1.3" />
    </ItemGroup>
    <ItemGroup>
      <DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="1.0.0" />
    </ItemGroup>
  </Project>
  ```
Für jedes der anfälligen Pakete hat die Suche ergeben, dass eine direkte Abhängigkeit von einer aktualisierten Version des Pakets zur Datei „project.json“ hinzugefügt werden muss. Dazu können Sie im Abschnitt „dependencies“ eine neue Zeile hinzufügen, die auf die korrigierte Version verweist. Wenn beispielsweise die Suche einen intransitiven Verweis auf das anfällige Paket „System.Net.Security“ mit der Version 4.3.0 ergeben hat, würden Sie einen Verweis auf die entsprechende korrigierte Version 4.3.1 hinzufügen.
  ```
  <Project Sdk="Microsoft.NET.Sdk.Web">
    <PropertyGroup>
      <TargetFramework>netcoreapp1.1</TargetFramework>
    </PropertyGroup>
    <PropertyGroup>
      <PackageTargetFallback>$(PackageTargetFallback);portable-net45+win8+wp8+wpa81;</PackageTargetFallback>
    </PropertyGroup>
    <ItemGroup>
      <PackageReference Include="System.Net.Security" Version="4.3.1" />
      <PackageReference Include="Microsoft.AspNetCore" Version="1.1.1" />
      <PackageReference Include="Microsoft.AspNetCore.Mvc" Version="1.1.3" />
    </ItemGroup>
    <ItemGroup>
      <DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="1.0.0" />
    </ItemGroup>
  ```
Nachdem Sie die direkte Abhängigkeit hinzugefügt haben, speichern Sie Ihre CSPROJ-Datei.
Wenn Sie Visual Studio verwenden, speichern Sie die aktualisierte CSPROJ-Datei, damit Visual Studio die neuen Paketversionen wiederherstellt. Sie können die Ergebnisse der Wiederherstellung anzeigen, indem Sie das Ausgabefenster öffnen (Strg+Alt+O) und in der Dropdownliste **Ausgabe anzeigen von** zur Option **Paket-Manager** wechseln.
Wenn Sie Visual Studio nicht verwenden, öffnen Sie eine Befehlszeile, und wechseln Sie zu Ihrem Projektverzeichnis. Führen Sie den Befehl „dotnet restore“ aus, um die neuen Abhängigkeiten wiederherzustellen.
### Neuerstellen der Anwendung
Erstellen Sie zuletzt Ihre Anwendung neu, testen Sie sie wie gewohnt, und stellen Sie sie dann mithilfe Ihrer bevorzugten Bereitstellungsmethode erneut bereit.
Weitere Informationen
---------------------
### Melden von Sicherheitsrisiken
-   Wenn Sie ein potenzielles Sicherheitsrisiko in .NET Core gefunden haben, senden Sie bitte die Details dazu per E-Mail an <<EMAIL>>. Berichte werden u. U. in das Bug Bounty-Programm für .NET Core aufgenommen. Informationen zum Bug Bounty-Programm für .NET Core einschließlich Bestimmungen finden Sie unter <https://aka.ms/corebounty>.
### Microsoft Active Protections Program (MAPP)
Um den Sicherheitsschutz für Benutzer zu verbessern, stellt Microsoft den wichtigsten Anbietern von Sicherheitssoftware vor der monatlichen Veröffentlichung der Sicherheitsupdates Informationen zu Sicherheitsanfälligkeiten bereit. Anbieter von Sicherheitssoftware können diese Informationen zu Sicherheitsrisiken dann verwenden, um Benutzern aktualisierten Schutz über ihre Sicherheitssoftware oder ihre Geräte bereitzustellen, z. B. Antivirus, netzwerkbasierte Angriffserkennungssysteme oder hostbasierte Angriffsverhinderungssysteme. Wenn Sie erfahren möchten, ob von den Sicherheitssoftwareanbietern aktiver Schutz verfügbar ist, besuchen Sie die von den Programmpartnern bereitgestellten Active Protections-Websites, die unter [MAPP-Partner (Microsoft Active Protections Program)](https://go.microsoft.com/fwlink/?linkid=215201) aufgeführt sind.
### Feedback
-   Sie können uns Ihr Feedback über das Formular [Kundendienst/Kontakt](https://support.microsoft.com/de-de/kb/?scid=sw;en;1257&amp;showpage=1&amp;ws=technet&amp;sd=tech) auf der Microsoft-Website „Hilfe und Support“ mitteilen.
### Support
-   Auf GitHub können Sie in den .NET Core- oder ASP.NET Core-Organisationen Fragen zu diesem Sicherheitsrisiko stellen. Zu finden sind sie unter <https://github.com/dotnet/> und <https://github.com/aspnet/>. Das Repository „Announcements“ für die Produkte ([https://github.com/dotnet/Announcements](https://github.com/dotnet/announcements) und [https://github.com/aspnet/Announcements](https://github.com/aspnet/announcements)) enthält dieses Sicherheitsbulletin sowie einen Link zu einem Diskussionsforum, wo Sie Fragen stellen können.
-   Kunden in den USA und Kanada können von Security Support technischen Support erhalten. Weitere Informationen finden Sie unter „Microsoft-Hilfe und -Support“.
-   Kunden außerhalb der USA können von ihren regionalen Microsoft-Niederlassungen Support erhalten. Weitere Informationen finden Sie unter „Internationale Unterstützung“. \* Auf der Microsoft TechNet Security-Website werden zusätzliche Informationen zur Sicherheit in Microsoft-Produkten zur Verfügung gestellt.
### Haftungsausschluss
Die Informationen in dieser Empfehlung werden wie besehen und ohne jede Gewährleistung bereitgestellt. Microsoft schließt alle anderen Garantien, gleichgültig, ob ausdrücklich oder konkludent, einschließlich der Garantien der Handelsüblichkeit oder Eignung für einen bestimmten Zweck aus. In keinem Fall kann die Microsoft Corporation und/oder deren jeweilige Lieferanten haftbar gemacht werden für Schäden irgendeiner Art, einschließlich direkter, indirekter, zufällig entstandener Schäden, Folgeschäden, Folgen entgangenen Gewinns oder spezieller Schäden, selbst dann nicht, wenn Microsoft Corporation und/oder deren jeweilige Lieferanten auf die mögliche Entstehung dieser Schäden hingewiesen wurde. Weil in einigen Staaten/Rechtsordnungen der Ausschluss oder die Beschränkung einer Haftung für zufällig entstandene Schäden oder Folgeschäden nicht gestattet ist, gilt die obige Einschränkung eventuell nicht für Sie.
### Revisionen
-   V1.0 (9. Mai 2017): Die Empfehlung wurde veröffentlicht.
*Seite generiert am 05.05.2017 um 11:00-07:00.*