Microsoft Security Advisory 4021279
Beveiligingsproblemen in .NET Core, ASP.NET Core kan uitbreiding van bevoegdheden toestaan
Gepubliceerd: 9 mei 2017 | Bijgewerkt: 10 mei 2017
Versie: 1.1
Samenvatting
Microsoft brengt dit beveiligingsadvies uit om informatie te verstrekken over beveiligingsproblemen in openbare .NET Core en ASP.NET Core. Dit advies biedt ook richtlijnen voor wat ontwikkelaars kunnen doen om hun toepassingen correct bij te werken.
.NET Core & ASP.NET Core is de volgende generatie .NET die een vertrouwd en modern framework biedt voor web- en cloudscenario's. Deze producten worden actief ontwikkeld door het .NET- en ASP.NET-team in samenwerking met een community van opensource-ontwikkelaars, die worden uitgevoerd op Windows, Mac OS X en Linux. Toen .NET Core werd uitgebracht, werd het versienummer opnieuw ingesteld op 1.0.0 om aan te geven dat het een afzonderlijk product is van zijn voorganger -.NET.
CV's en beschrijving uitgeven
CVE | Beschrijving |
---|---|
CVE-2017-0247 | Denial of Service |
CVE-2017-0248 | Bypass van beveiligingsfuncties |
CVE-2017-0249 | Verhoging van bevoegdheden |
CVE-2017-0256 | Adresvervalsing (spoofing) |
Betrokken software
De beveiligingsproblemen zijn van invloed op een Microsoft .NET Core-project als deze gebruikmaakt van de volgende betrokken pakketversies.
Betrokken pakket en versie | ||
---|---|---|
Pakketnaam | Pakketversies | Vaste pakketversies |
System.Text.Encodings.Web | 4.0.0 4.3.0 | 4.0.1 4.3.1 |
System.Net.Http | 4.1.1 4.3.1 | 4.1.2 4.3.2 |
System.Net.Http.WinHttpHandler | 4.0.1 4.3.0 | 4.0.2 4.3.1 |
System.Net.Security | 4.0.0 4.3.0 | 4.0.1 4.3.1 |
System.Net.WebSockets.Client | 4.0.0 4.3.0 | 4.0.1 4.3.1 |
Microsoft.AspNetCore.Mvc | 1.0.0, 1.0.1, 1.0.2, 1.0.3 1.1.0, 1.1.1, 1.1.2 | 1.0.4 1.1.3 |
Microsoft.AspNetCore.Mvc.Core | 1.0.0, 1.0.1, 1.0.2, 1.0.3 1.1.0, 1.1.1, 1.1.2 | 1.0.4 1.1.3 |
Microsoft.AspNetCore.Mvc.Abstractions | 1.0.0, 1.0.1, 1.0.2, 1.0.3 1.1.0, 1.1.1, 1.1.2 | 1.0.4 1.1.3 |
Microsoft.AspNetCore.Mvc.ApiExplorer | 1.0.0, 1.0.1, 1.0.2, 1.0.3 1.1.0, 1.1.1, 1.1.2 | 1.0.4 1.1.3 |
Microsoft.AspNetCore.Mvc.Cors | 1.0.0, 1.0.1, 1.0.2, 1.0.3 1.1.0, 1.1.1, 1.1.2 | 1.0.4 1.1.3 |
Microsoft.AspNetCore.Mvc.DataAnnotations | 1.0.0, 1.0.1, 1.0.2, 1.0.3 1.1.0, 1.1.1, 1.1.2 | 1.0.4 1.1.3 |
Microsoft.AspNetCore.Mvc.Formatters.Json | 1.0.0, 1.0.1, 1.0.2, 1.0.3 1.1.0, 1.1.1, 1.1.2 | 1.0.4 1.1.3 |
Microsoft.AspNetCore.Mvc.Formatters.Xml | 1.0.0, 1.0.1, 1.0.2, 1.0.3 1.1.0, 1.1.1, 1.1.2 | 1.0.4 1.1.3 |
Microsoft.AspNetCore.Mvc.Localization | 1.0.0, 1.0.1, 1.0.2, 1.0.3 1.1.0, 1.1.1, 1.1.2 | 1.0.4 1.1.3 |
Microsoft.AspNetCore.Mvc.Razor.Host | 1.0.0, 1.0.1, 1.0.2, 1.0.3 1.1.0, 1.1.1, 1.1.2 | 1.0.4 1.1.3 |
Microsoft.AspNetCore.Mvc.Razor | 1.0.0, 1.0.1, 1.0.2, 1.0.3 1.1.0, 1.1.1, 1.1.2 | 1.0.4 1.1.3 |
Microsoft.AspNetCore.Mvc.TagHelpers | 1.0.0, 1.0.1, 1.0.2, 1.0.3 1.1.0, 1.1.1, 1.1.2 | 1.0.4 1.1.3 |
Microsoft.AspNetCore.Mvc.ViewFeatures | 1.0.0, 1.0.1, 1.0.2, 1.0.3 1.1.0, 1.1.1, 1.1.2 | 1.0.4 1.1.3 |
Microsoft.AspNetCore.Mvc.WebApiCompatshim | 1.0.0, 1.0.1, 1.0.2, 1.0.3 1.1.0, 1.1.1, 1.1.2 | 1.0.4 1.1.3 |
Veelgestelde vragen over advies
Hoe kan ik weten of ik getroffen ben?
.NET Core en ASP.NET Core hebben twee soorten afhankelijkheden: direct en transitief. Als uw project een directe of transitieve afhankelijkheid heeft van een van de pakketten en versies die eerder worden vermeld, wordt dit beïnvloed.
Notitie
Als onderdeel van patching ASP.NET Core MVC werken we elk Microsoft.AspNetCore.Mvc.*-pakket bij. Als u bijvoorbeeld een afhankelijkheid hebt van Microsoft.AspNetCore.Mvc, moet u eerst bijwerken naar de juiste versie (1.0.x moet worden bijgewerkt naar 1.0.4, 1.1.x moet worden bijgewerkt naar 1.1.3) en worden ook alle andere kwetsbare Microsoft.AspNetCore.Mvc-afhankelijkheid bijgewerkt.
.NET Core-projectindelingen
.NET Core heeft twee verschillende projectbestandsindelingen, afhankelijk van de software die het project heeft gemaakt.
- project.json is de oorspronkelijke indeling, opgenomen in .NET Core 1.0 en Microsoft Visual Studio 2015.
- csproj is de indeling die wordt gebruikt in Microsoft Visual Studio 2017.
U moet ervoor zorgen dat u de juiste update-instructies voor uw projecttype volgt.
Directe afhankelijkheden
Directe afhankelijkheden zijn afhankelijkheden waarbij u specifiek een pakket aan uw project toevoegt. Als u bijvoorbeeld het Microsoft.AspNetCore.Mvc-pakket aan uw project toevoegt, hebt u een directe afhankelijkheid van Microsoft.AspNetCore.Mvc genomen.
Directe afhankelijkheden zijn detecteerbaar door uw project.json- of csproj-bestand te controleren.
Transitieve afhankelijkheden
Transitieve afhankelijkheden treden op wanneer u een pakket toevoegt aan uw project dat op zijn beurt afhankelijk is van een ander pakket. Als u bijvoorbeeld het Microsoft.AspNetCore.Mvc-pakket aan uw project toevoegt, is dit afhankelijk van het Microsoft.AspNetCore.Mvc.Core-pakket (onder andere). Uw project heeft een directe afhankelijkheid van Microsoft.AspNetCore.Mvc en een transitieve afhankelijkheid van het Microsoft.AspNetCore.Mvc.Core-pakket.
Transitieve afhankelijkheden kunnen worden gecontroleerd in het Visual Studio Solution Explorer-venster, dat ondersteuning biedt voor zoeken of door het project.lock.json bestand in de hoofdmap van uw project te bekijken voor project.json projecten of het project.assets.json bestand in de obj-map van uw project voor csproj-projecten. Deze bestanden zijn de gezaghebbende lijst met alle pakketten die door uw project worden gebruikt, met zowel directe als transitieve afhankelijkheden.
Hoe kan ik mijn betreffende toepassing herstellen?
U moet zowel directe afhankelijkheden herstellen als eventuele transitieve afhankelijkheden controleren en herstellen. De betrokken pakketten en versies in de vorige sectie 'Beïnvloede software' bevatten elk kwetsbaar pakket, de kwetsbare versies en de patchversies.
Als u ASP.NET Core MVC in uw projecten gebruikt, moet u eerst de microsoft.AspNetCore.Mvc-versie bijwerken op basis van de vorige tabel met betrokken versies. Als u momenteel versie 1.0.0, 1.0.1, 1.0.2 of 1.0.3 gebruikt, moet u de pakketversie bijwerken naar 1.0.4. Als u versie 1.1.0, 1.1.1 of 1.1.2 gebruikt, moet u de pakketversie bijwerken naar 1.1.3. Hiermee wordt elk MVC-pakket bijgewerkt naar de vaste versies.
Directe afhankelijkheden herstellen - project.json/VS2015
Open het project.json-bestand in de editor. Zoek naar de sectie Afhankelijkheden. Hieronder ziet u een sectie met voorbeeldafhankelijkheden:
"dependencies": {
"Microsoft.NETCore.App": {
"version": "1.0.1",
"type": "platform"
},
"Microsoft.AspNetCore.Server.Kestrel": "1.0.1",
"Microsoft.AspNetCore.Mvc ": "1.0.1",
}
Dit voorbeeld heeft drie directe afhankelijkheden: Microsoft.NETCore.App, Microsoft.AspNetCore.Server.Kestrel en Microsoft.AspNetCore.Mvc.
Microsoft.NetCore.App het platform is dat de toepassingsdoelen zijn, moet u dit negeren. De andere pakketten maken hun versie rechts van de pakketnaam beschikbaar. In ons voorbeeld zijn onze niet-platformpakketten versie 1.0.1.
Controleer uw directe afhankelijkheden voor elk exemplaar van de pakketten en versies die eerder worden vermeld. In het vorige voorbeeld is er een directe afhankelijkheid van een van de kwetsbare pakketten, Microsoft.AspNetCore.Mvc versie 1.0.1.
Als u het vaste pakket wilt bijwerken, wijzigt u het versienummer in het juiste pakket voor uw release. In het voorbeeld wordt Microsoft.AspNetCore.Mvc bijgewerkt naar 1.0.4.
Sla uw project.json bestand op nadat u de kwetsbare pakketversies hebt bijgewerkt.
De sectie afhankelijkheden in ons voorbeeld project.json ziet er nu als volgt uit:
"dependencies": {
"Microsoft.NETCore.App": {
"version": "1.0.1",
"type": "platform"
},
"Microsoft.AspNetCore.Server.Kestrel": "1.0.1",
"Microsoft.AspNetCore.Mvc": "1.0.4",
}
Als u Visual Studio gebruikt en het bijgewerkte project.json-bestand opslaat, wordt de nieuwe pakketversie hersteld. U kunt de resultaten van het herstel zien door het uitvoervenster (Ctrl+Alt+O) te openen en de uitvoer van de vervolgkeuzelijst Weergeven te wijzigen in Pakketbeheer.
Als u Visual Studio niet gebruikt, opent u een opdrachtregel en gaat u naar de projectmap. Voer de opdracht dotnet restore uit om uw nieuwe afhankelijkheid te herstellen.
Nadat u al uw directe afhankelijkheden hebt aangepakt, moet u ook uw transitieve afhankelijkheden controleren.
Directe afhankelijkheden herstellen - csproj/VS2017
Open het bestand projectname.csproj in uw editor of klik met de rechtermuisknop op het project in Visual Studio 2017 en kies Projectnaam.csproj bewerken in het inhoudsmenu, waarbij projectnaam de naam van uw project is. Zoek naar PackageReference-knooppunten. Hieronder ziet u een voorbeeldprojectbestand:
<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><packagereference include="Microsoft.AspNetCore.Mvc" version="1.1.2">
</packagereference></itemgroup>
<itemgroup>
<dotnetclitoolreference include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" version="1.0.0 ">
</dotnetclitoolreference></itemgroup>
</project>
Het voorbeeld heeft twee directe pakketafhankelijkheden, zoals te zien is in de twee PackageReference-elementen. De naam van het pakket bevindt zich in het kenmerk Include en het pakketversienummer bevindt zich in het kenmerk Versie dat rechts van de pakketnaam wordt weergegeven. In het voorbeeld ziet u twee pakketten Microsoft.AspNetCore versie 1.1.1 en Microsoft.AspNetCore.Mvc.Core versie 1.1.2.
Controleer uw PackageReference-elementen voor elk exemplaar van de pakketten en versies die eerder worden vermeld. In het vorige voorbeeld is er een directe afhankelijkheid van een van de kwetsbare pakketten, Microsoft.AspNetCore.Mvc versie 1.1.2.
Als u het vaste pakket wilt bijwerken, wijzigt u het versienummer in het juiste pakket voor uw release. In het voorbeeld wordt Microsoft.AspNetCore.Mvc bijgewerkt naar 1.1.3.
Sla uw csproj-bestand op nadat u de versie van het kwetsbare pakket hebt bijgewerkt.
Het voorbeeld van csproj ziet er nu als volgt uit:
<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><packagereference include="Microsoft.AspNetCore.Mvc.Core" version="1.1.3">
</packagereference></itemgroup>
<itemgroup>
<dotnetclitoolreference include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" version="1.0.0 ">
</dotnetclitoolreference></itemgroup>
</project>
Als u Visual Studio gebruikt en het bijgewerkte csproj-bestand opslaat, herstelt Visual Studio de nieuwe pakketversie. U kunt de resultaten van het herstel zien door het uitvoervenster (Ctrl+Alt+O) te openen en de uitvoer van de vervolgkeuzelijst Weergeven te wijzigen in Pakketbeheer.
Als u Visual Studio niet gebruikt, opent u een opdrachtregel en gaat u naar de projectmap. Voer de opdracht dotnet restore uit om uw nieuwe afhankelijkheid te herstellen.
Uw toepassing opnieuw compileren.
Als na hercompilatie een waarschuwing over afhankelijkheidsconflicten wordt weergegeven, moet u uw andere directe afhankelijkheden bijwerken naar de juiste versie. Als uw project bijvoorbeeld verwijst naar Microsoft.AspNetCore.Routing met een versienummer van 1.0.1 wanneer u uw Microsoft.AspNetCore.Mvc-pakket bijwerkt naar 1.0.4, genereert compilatie het volgende:
NU1012-afhankelijkheidsconflict. Microsoft.AspNetCore.Mvc.Core 1.0.4 verwacht Microsoft.AspNetCore.Routing >= 1.0.4, maar heeft 1.0.1 ontvangen
U kunt dit oplossen door de versie voor het verwachte pakket te bewerken als de versie die wordt verwacht door uw csproj of project.json op dezelfde manier bij te werken als u hebt gebruikt om de kwetsbare pakketversies bij te werken.
Nadat u al uw directe afhankelijkheden hebt aangepakt, moet u ook uw transitieve afhankelijkheden controleren.
Transitieve afhankelijkheden controleren
Er zijn twee manieren om transitieve afhankelijkheden weer te geven. U kunt Solution Explorer van Visual Studio gebruiken of u kunt het bestand project.lock.json (project.json/VS2015) of project.assets.json (csproj/VS2017) bekijken.
Visual Studio Solution Explorer (VS2015) gebruiken
Als u Visual Studio 2015 wilt gebruiken, opent u uw project in Visual Studio 2015 en drukt u op Ctrl+; om de zoekopdracht te activeren in Solution Explorer. Zoek naar elk van de kwetsbare pakketnamen en noteer de versienummers van de resultaten die u vindt.
Als u bijvoorbeeld zoekt naar Microsoft.AspNetCore.Mvc.Core in een voorbeeldproject dat een verwijzing naar Microsoft.AspNetCore.Mvc bevat, worden de volgende resultaten weergegeven in Visual Studio 2015.
Afbeelding 1: Verwijzingen zoeken in Visual Studio 2015
De zoekresultaten worden weergegeven als een boomstructuur. In deze resultaten ziet u dat we verwijzingen hebben gevonden naar Microsoft.AspNetCore.Mvc, versie 1.0.1, de kwetsbare versie.
De eerste vermelding onder de kop Verwijzingen verwijst naar het doelframework dat uw toepassing gebruikt. Dit zal zijn. NETCoreApp, . NETStandard of . NET-Framework-vX.Y.Z (waarbij X.Y.Z een werkelijk versienummer is) afhankelijk van hoe u uw toepassing hebt geconfigureerd. Onder uw doelframework ziet u de lijst met pakketten waarvoor u rechtstreeks een afhankelijkheid hebt gemaakt. In dit voorbeeld heeft de toepassing een afhankelijkheid van Microsoft.AspNetCore.Mvc. Microsoft.AspNetCore.Mvc bevat op zijn beurt leaf-knooppunten die de afhankelijkheden en hun versies vermelden. In dit geval is het Microsoft.AspNetCore.Mvc-pakket afhankelijk van een kwetsbare versie van Microsoft.AspNetCore.Mvc.Core en tal van andere pakketten.
Handmatig project.lock.json controleren (project.json/VS2015)
Open het project.lock.json-bestand in uw editor. We raden u aan een editor te gebruiken die json begrijpt en waarmee u knooppunten kunt samenvouwen en uitvouwen om dit bestand te controleren; Visual Studio en Visual Studio Code bieden deze functionaliteit.
Als u Visual Studio gebruikt, bevindt het project.lock.json bestand zich onder het project.json bestand. Klik op de pijl-rechtse driehoek ,, links van het project.json bestand om de oplossingsstructuur uit te vouwen om het project.lock.json bestand beschikbaar te maken. In afbeelding 1 hieronder ziet u een project met het project.json-bestand uitgevouwen om het project.lock.json-bestand weer te geven.
Afbeelding 2: project.lock.json bestandslocatie
Zoek in het project.lock.json-bestand naar de tekenreeks Microsoft.AspNetCore.Mvc.Core/1.1.0. Als uw project.lock.json bestand deze tekenreeks bevat, hebt u een afhankelijkheid van het kwetsbare pakket.
Transitieve afhankelijkheden herstellen (project.json/VS2015)
Als u geen verwijzing naar kwetsbare pakketten hebt gevonden, betekent dit dat geen van uw directe afhankelijkheden afhankelijk is van kwetsbare pakketten of dat u het probleem al hebt opgelost door de directe afhankelijkheden bij te werken.
Als uw transitieve afhankelijkheidsbeoordeling verwijzingen heeft gevonden naar een van de kwetsbare pakketten, moet u een directe afhankelijkheid toevoegen aan het bijgewerkte pakket aan uw project.json-bestand om de transitieve afhankelijkheid te overschrijven. Open uw project.json en zoek de sectie met afhankelijkheden. Voorbeeld:
"dependencies": {
"Microsoft.NETCore.App": {
"version": "1.0.1",
"type": "platform"
},
"Microsoft.AspNetCore.Server.Kestrel": "1.1.0",
"Microsoft.AspNetCore.Mvc": "1.1.0"
}
Voor elk van de kwetsbare pakketten die uw zoekopdracht heeft geretourneerd, moet u een directe afhankelijkheid toevoegen aan de bijgewerkte versie door deze toe te voegen aan het project.json-bestand. U doet dit door een nieuwe regel toe te voegen aan de sectie Afhankelijkheden, waarbij wordt verwezen naar de vaste versie. Als uw zoekopdracht bijvoorbeeld een transitieve verwijzing naar de kwetsbare System.Net.Security-versie 4.0.0 toont, voegt u een verwijzing toe naar de juiste vaste versie, 4.0.1. Bewerk het project.json bestand als volgt:
"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"
}
Nadat u directe afhankelijkheden aan de vaste pakketten hebt toegevoegd, slaat u het project.json-bestand op.
Als u Visual Studio gebruikt, slaat u uw bijgewerkte project.json-bestand op en worden de nieuwe pakketversies hersteld. U kunt de resultaten van het herstel zien door het uitvoervenster (Ctrl+Alt+O) te openen en de uitvoer van de vervolgkeuzelijst Weergeven te wijzigen in Pakketbeheer.
Als u Visual Studio niet gebruikt, opent u een opdrachtregel en gaat u naar de projectmap. Voer de opdracht dotnet restore uit om uw nieuwe afhankelijkheden te herstellen.
Visual Studio Solution Explorer (VS2017) gebruiken
Als u Solution Explorer wilt gebruiken, opent u uw project in Visual Studio 2017 en drukt u op Ctrl+; om de zoekopdracht te activeren in Solution Explorer. Zoek naar elk van de kwetsbare pakketnamen en noteer de versienummers van de resultaten die u vindt.
Als u bijvoorbeeld zoekt naar Microsoft.AspNetCore.Mvc.Core in een voorbeeldproject dat een pakket bevat dat afhankelijk is van Microsoft.AspNetCore.Mvc, worden de volgende resultaten weergegeven in Visual Studio 2017.
Afbeelding 3: Verwijzingen zoeken in Visual Studio 2017
De zoekresultaten worden weergegeven als een boomstructuur. In deze resultaten ziet u dat we verwijzingen hebben gevonden naar Microsoft.AspNetCore.Mvc.Core versie 1.1.2.
Onder het knooppunt Afhankelijkheden is een NuGet-knooppunt. Onder het NuGet-knooppunt ziet u de lijst met pakketten waarvoor u rechtstreeks een afhankelijkheid hebt gemaakt en de bijbehorende versies. In dit voorbeeld heeft de toepassing een directe afhankelijkheid van Microsoft.AspNetCore.Mvc. Microsoft.AspNetCore.Mvc bevat op zijn beurt leaf-knooppunten die de afhankelijkheden en hun versies vermelden. In het voorbeeld is het Microsoft.AspNetCore.Mvc-pakket afhankelijk van een versie van Microsoft.AspNetCore.Mvc.ApiExplorer die op zijn beurt afhankelijk is van een kwetsbare versie van Microsoft.AspNetCore.Mvc.Core.
Handmatig controleren van project.assets.json (VS2017)
Open het project.assets.json bestand vanuit de obj-map van uw project in uw editor. We raden u aan een editor te gebruiken die json begrijpt en waarmee u knooppunten kunt samenvouwen en uitvouwen om dit bestand te controleren; Visual Studio en Visual Studio Code bieden deze functionaliteit.
Zoek in het project.assets.json bestand naar de pakketnamen in de tabel kwetsbare pakketten, gevolgd door een /. Als u bijvoorbeeld op zoek bent naar Microsoft.AspNetCore.Mvc, moet u een zoektekenreeks van Microsoft.AspNetCore.Mvc/gebruiken. Als uw project.assets.json bestand deze tekenreeks bevat en het volledige versienummer (het nummer na de /in zoektreffers) overeenkomt met een van de eerder vermelde kwetsbare versies, hebt u een afhankelijkheid van het kwetsbare pakket.
Transitieve afhankelijkheden herstellen (csproj/VS2017)
Als u geen verwijzing naar kwetsbare pakketten hebt gevonden, betekent dit dat geen van uw directe afhankelijkheden afhankelijk is van kwetsbare pakketten of dat u het probleem al hebt opgelost door de directe afhankelijkheden bij te werken.
Als uw transitieve afhankelijkheidsbeoordeling verwijzingen heeft gevonden naar een van de kwetsbare pakketten, moet u een directe afhankelijkheid toevoegen aan het bijgewerkte pakket aan uw csproj-bestand om de transitieve afhankelijkheid te overschrijven. Open het bestand projectname.csproj in uw editor of klik met de rechtermuisknop op het project in Visual Studio 2017 en kies Projectnaam.csproj bewerken in het inhoudsmenu, waarbij projectnaam de naam van uw project is. Zoek naar PackageReference-knooppunten, bijvoorbeeld:
<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><packagereference include="Microsoft.AspNetCore.Mvc" version="1.1.3">
</packagereference></itemgroup>
<itemgroup>
<dotnetclitoolreference include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" version="1.0.0">
</dotnetclitoolreference></itemgroup>
</project>
Voor elk van de kwetsbare pakketten die uw zoekopdracht heeft geretourneerd, moet u een directe afhankelijkheid toevoegen aan de bijgewerkte versie door deze toe te voegen aan het csproj-bestand. U doet dit door een nieuwe regel toe te voegen aan de sectie Afhankelijkheden, waarbij wordt verwezen naar de vaste versie. Als uw zoekopdracht bijvoorbeeld een transitieve verwijzing naar de kwetsbare System.Net.Security-versie 4.3.0 liet zien, voegt u een verwijzing toe naar de juiste vaste versie, 4.3.1.
<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><packagereference include="Microsoft.AspNetCore" version="1.1.1">
</packagereference><packagereference include="Microsoft.AspNetCore.Mvc" version="1.1.3">
</packagereference></itemgroup>
<itemgroup>
<dotnetclitoolreference include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" version="1.0.0">
</dotnetclitoolreference></itemgroup>
Nadat u de directe afhankelijkheidsreferentie hebt toegevoegd, slaat u het csproj-bestand op.
Als u Visual Studio gebruikt, slaat u het bijgewerkte csproj-bestand op en herstelt Visual Studio de nieuwe pakketversies. U kunt de resultaten van het herstel zien door het uitvoervenster (Ctrl+Alt+O) te openen en de uitvoer van de vervolgkeuzelijst Weergeven te wijzigen in Pakketbeheer.
Als u Visual Studio niet gebruikt, opent u een opdrachtregel en gaat u naar de projectmap. Voer de opdracht dotnet restore uit om uw nieuwe afhankelijkheden te herstellen.
Uw toepassing opnieuw opbouwen
Bouw ten slotte uw toepassing opnieuw op, test zoals u normaal zou doen en implementeer opnieuw met behulp van uw favoriete implementatiemechanisme.
Overige informatie
Beveiligingsproblemen melden
- Als u een mogelijk beveiligingsprobleem in .NET Core hebt gevonden, stuur dan een e-mail naar . Rapporten kunnen in aanmerking komen voor de .NET Core Bug Bounty. Details van de .NET Core Bug Bounty inclusief voorwaarden vindt u op https:.
Microsoft Active Protections Program (MAPP)
Om de beveiliging voor klanten te verbeteren, biedt Microsoft informatie over beveiligingsproblemen aan belangrijke beveiligingssoftwareproviders voorafgaand aan elke maandelijkse beveiligingsupdaterelease. Beveiligingssoftwareproviders kunnen deze beveiligingsinformatie vervolgens gebruiken om bijgewerkte beveiligingen te bieden aan klanten via hun beveiligingssoftware of -apparaten, zoals antivirussoftware, netwerkgebaseerde inbraakdetectiesystemen of systemen voor inbraakpreventie op basis van een host. Als u wilt bepalen of actieve beveiligingen beschikbaar zijn bij beveiligingssoftwareproviders, gaat u naar de actieve beveiligingswebsites van programmapartners, vermeld in MAPP-partners (Microsoft Active Protections Program).
Feedback
- U kunt feedback geven door het Microsoft Help- en ondersteuningsformulier, de klantenservice contact met ons op te geven.
Ondersteuning
- U kunt vragen stellen over dit probleem op GitHub in .NET Core of ASP.NET Core-organisaties. Deze bevinden zich op </https:>https: en </https:https:>. De opslagplaats Aankondigingen voor elk product (https://github.com/dotnet/Announcements en https://github.com/aspnet/Announcements) bevat dit advies als een probleem en bevat een koppeling naar een discussieprobleem waar u vragen kunt stellen.
- Klanten in de Verenigde Staten en Canada kunnen technische ondersteuning ontvangen van Beveiligingsondersteuning. Zie Microsoft Help en ondersteuning voor meer informatie.
- Internationale klanten kunnen ondersteuning krijgen van hun lokale Microsoft-dochterondernemingen. Zie Internationale ondersteuning voor meer informatie. * Microsoft TechNet Security biedt aanvullende informatie over beveiliging in Microsoft-producten.
Erkenningen
Microsoft bedankt voor het werken met ons om klanten te beschermen:
- David Azure Azure Sidertia Solutions voor het melden van het ASP.NET Core Denial of Service Vulnerability (CVE-2017-0247)
- Azure Shcherbakov voor het melden van het ASP.NET Core Spoofing Vulnerability (CVE-2017-0256)
Vrijwaring
De informatie die in dit advies wordt verstrekt, wordt "zoals zodanig" verstrekt zonder enige garantie. Microsoft wijst alle garanties af, hetzij uitdrukkelijk of impliciet, met inbegrip van de garanties van verkoopbaarheid en geschiktheid voor een bepaald doel. In geen geval is Microsoft Corporation of haar leveranciers aansprakelijk voor enige schade, waaronder directe, indirecte, incidentele, gevolgschade, verlies van bedrijfswinst of speciale schade, zelfs als Microsoft Corporation of haar leveranciers op de hoogte zijn gesteld van de mogelijkheid van dergelijke schade. Sommige staten staan de uitsluiting of beperking van aansprakelijkheid voor gevolgschade of incidentele schade niet toe, zodat de voorgaande beperking mogelijk niet van toepassing is.
Revisies
- V1.0 (9 mei 2017): Advies gepubliceerd.
- V1.1 (10 mei 2017): Advies herzien om een tabel met uitgifte-CV's en hun beschrijvingen op te nemen. Dit is alleen een informatieve wijziging.
Pagina gegenereerd 2017-05-10 13:08-07:00. </https:>