Bagikan melalui


4021279 Microsoft Security Advisory

Kerentanan di .NET Core, ASP.NET Core Dapat Memungkinkan Elevasi

Diterbitkan: 9 Mei 2017 | Diperbarui: 10 Mei 2017

Versi: 1.1

Ringkasan Eksekutif

Microsoft merilis saran keamanan ini untuk memberikan informasi tentang kerentanan di .NET Core publik dan ASP.NET Core. Saran ini juga memberikan panduan tentang apa yang dapat dilakukan pengembang untuk memperbarui aplikasi mereka dengan benar.

.NET Core &ASP.NET Core adalah generasi berikutnya dari .NET yang menyediakan kerangka kerja yang akrab dan modern untuk skenario web dan cloud. Produk-produk ini secara aktif dikembangkan oleh tim .NET dan ASP.NET bekerja sama dengan komunitas pengembang sumber terbuka, yang berjalan di Windows, Mac OS X dan Linux. Ketika .NET Core dirilis, nomor versi diatur ulang ke 1.0.0 untuk mencerminkan fakta bahwa itu adalah produk terpisah dari pendahulunya -.NET.

Mengeluarkan CVE dan Deskripsi

CVE Keterangan
CVE-2017-0247 Penolakan Layanan
CVE-2017-0248 Bypass Fitur Keamanan
CVE-2017-0249 Peningkatan Hak Istimewa
CVE-2017-0256 Spoofing

Perangkat Lunak yang Terpengaruh

Kerentanan memengaruhi proyek Microsoft .NET Core apa pun jika menggunakan versi paket yang terpengaruh berikut.

Paket dan versi yang terpengaruh
Nama paket Versi paket Versi paket tetap
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

Tanya Jawab Umum Penasihat

Bagaimana cara mengetahui apakah saya terpengaruh?
.NET Core dan ASP.NET Core memiliki dua jenis dependensi: langsung dan transitif. Jika proyek Anda memiliki dependensi langsung atau transitif pada salah satu paket dan versi yang tercantum sebelumnya, Anda terpengaruh.

Catatan

Sebagai bagian dari patching ASP.NET Core MVC, kami memperbarui setiap paket Microsoft.AspNetCore.Mvc.*. Jika, misalnya, Anda memiliki dependensi pada Microsoft.AspNetCore.Mvc, Anda harus memperbarui ke versi yang sesuai terlebih dahulu (1.0.x harus diperbarui ke 1.0.4, 1.1.x harus diperbarui ke 1.1.3), dan juga akan memperbarui dependensi Microsoft.AspNetCore.Mvc lainnya yang rentan.

Format Proyek .NET Core

.NET Core memiliki dua format file proyek yang berbeda, tergantung pada perangkat lunak apa yang membuat proyek.

  1. project.json adalah format asli, yang disertakan dalam .NET Core 1.0 dan Microsoft Visual Studio 2015.
  2. csproj adalah format yang digunakan dalam Microsoft Visual Studio 2017.

Anda harus memastikan Anda mengikuti instruksi pembaruan yang benar untuk jenis proyek Anda.

Dependensi Langsung

Dependensi langsung adalah dependensi tempat Anda secara khusus menambahkan paket ke proyek Anda. Misalnya, jika Anda menambahkan paket Microsoft.AspNetCore.Mvc ke proyek Anda, maka Anda telah mengambil dependensi langsung pada Microsoft.AspNetCore.Mvc.

Dependensi langsung dapat ditemukan dengan meninjau file project.json atau csproj Anda.

Dependensi Transitif

Dependensi transitif terjadi ketika Anda menambahkan paket ke proyek Anda yang pada gilirannya bergantung pada paket lain. Misalnya, jika Anda menambahkan paket Microsoft.AspNetCore.Mvc ke proyek Anda, paket tersebut bergantung pada paket Microsoft.AspNetCore.Mvc.Core (antara lain). Proyek Anda memiliki dependensi langsung pada Microsoft.AspNetCore.Mvc dan dependensi transitif pada paket Microsoft.AspNetCore.Mvc.Core.

Dependensi transitif dapat ditinjau di jendela Visual Studio Penjelajah Solusi, yang mendukung pencarian, atau dengan meninjau file project.lock.json yang terkandung dalam direktori akar proyek Anda untuk proyek project.json atau file project.assets.json yang terkandung dalam direktori obj proyek Anda untuk proyek csproj. File-file ini adalah daftar otoritatif dari semua paket yang digunakan oleh proyek Anda, yang berisi dependensi langsung dan transitif.

Bagaimana cara memperbaiki aplikasi yang terpengaruh?

Anda harus memperbaiki dependensi langsung dan meninjau dan memperbaiki dependensi transitif apa pun. Paket dan versi yang terpengaruh di bagian "Perangkat Lunak yang Terpengaruh" sebelumnya mencakup setiap paket yang rentan, versi yang rentan, dan versi yang di-patch.

Jika Anda menggunakan ASP.NET Core MVC dalam proyek, Anda harus terlebih dahulu memperbarui versi Microsoft.AspNetCore.Mvc sesuai dengan tabel versi yang terpengaruh sebelumnya. Jika saat ini Anda menggunakan versi 1.0.0, 1.0.1, 1.0.2 atau 1.0.3, Anda harus memperbarui versi paket Anda ke 1.0.4. Jika Anda menggunakan versi 1.1.0, 1.1.1 atau 1.1.2, Anda harus memperbarui versi paket Anda ke 1.1.3. Ini akan memperbarui setiap paket MVC ke versi tetap.

Memperbaiki Dependensi Langsung - project.json/VS2015

Buka file project.json Anda di editor Anda. Cari bagian dependensi. Di bawah ini adalah contoh bagian dependensi:

    "dependencies": {
        "Microsoft.NETCore.App": {
          "version": "1.0.1",
          "type": "platform"
        },
        "Microsoft.AspNetCore.Server.Kestrel": "1.0.1",
        "Microsoft.AspNetCore.Mvc ": "1.0.1",
         
      }

Contoh ini memiliki tiga dependensi langsung: Microsoft.NETCore.App, Microsoft.AspNetCore.Server.Kestrel dan Microsoft.AspNetCore.Mvc.

Microsoft.NetCore.App adalah platform yang ditargetkan aplikasi, Anda harus mengabaikan ini. Paket lain mengekspos versinya di sebelah kanan nama paket. Dalam contoh kami, paket non-platform kami adalah versi 1.0.1.

Tinjau dependensi langsung Anda untuk instans paket dan versi apa pun yang tercantum sebelumnya. Dalam contoh sebelumnya, ada dependensi langsung pada salah satu paket yang rentan, Microsoft.AspNetCore.Mvc versi 1.0.1.

Untuk memperbarui ke paket tetap, ubah nomor versi menjadi paket yang sesuai untuk rilis Anda. Dalam contoh, ini akan memperbarui Microsoft.AspNetCore.Mvc ke 1.0.4.

Setelah memperbarui versi paket yang rentan, simpan file project.json Anda.

Bagian dependensi dalam contoh kami project.json sekarang akan terlihat sebagai berikut:

      "dependencies": {
        "Microsoft.NETCore.App": {
          "version": "1.0.1",
          "type": "platform"
        },
        "Microsoft.AspNetCore.Server.Kestrel": "1.0.1",
        "Microsoft.AspNetCore.Mvc": "1.0.4",
          
      }

Jika Anda menggunakan Visual Studio dan menyimpan file project.json yang diperbarui, Visual Studio akan memulihkan versi paket baru. Anda dapat melihat hasil pemulihan dengan membuka Jendela Output (Ctrl+Alt+O) dan mengubah daftar drop-down Tampilkan output dari ke Manajer Paket.

Jika Anda tidak menggunakan Visual Studio, buka baris perintah dan ubah ke direktori proyek Anda. Jalankan perintah pemulihan dotnet untuk memulihkan dependensi baru Anda.

Setelah mengatasi semua dependensi langsung, Anda juga harus meninjau dependensi transitif Anda.

Memperbaiki Dependensi Langsung - csproj/VS2017

Buka file projectname.csproj Anda di editor Anda, atau klik kanan proyek di Visual Studio 2017 dan pilih Edit projectname.csproj dari menu konten, di mana nama proyek adalah nama proyek Anda. Cari node PackageReference. Berikut ini memperlihatkan contoh file proyek:


    <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>

Contohnya memiliki dua dependensi paket langsung, seperti yang terlihat oleh dua elemen PackageReference. Nama paket ada di atribut Sertakan, dan nomor versi paket ada di atribut Versi yang diekspos ke sebelah kanan nama paket. Contoh menunjukkan dua paket Microsoft.AspNetCore versi 1.1.1, dan Microsoft.AspNetCore.Mvc.Core versi 1.1.2.

Tinjau elemen PackageReference Anda untuk instans paket dan versi apa pun yang tercantum sebelumnya. Dalam contoh sebelumnya, ada dependensi langsung pada salah satu paket yang rentan, Microsoft.AspNetCore.Mvc versi 1.1.2.

Untuk memperbarui ke paket tetap, ubah nomor versi ke paket yang sesuai untuk rilis Anda. Dalam contoh, ini akan memperbarui Microsoft.AspNetCore.Mvc ke 1.1.3.

Setelah memperbarui versi paket yang rentan, simpan file csproj Anda.

Contoh csproj sekarang akan terlihat sebagai berikut:


    <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>

Jika Anda menggunakan Visual Studio dan menyimpan file csproj yang diperbarui, Visual Studio akan memulihkan versi paket baru. Anda dapat melihat hasil pemulihan dengan membuka Jendela Output (Ctrl+Alt+O) dan mengubah daftar drop-down Tampilkan output dari ke Manajer Paket.

Jika Anda tidak menggunakan Visual Studio, buka baris perintah dan ubah ke direktori proyek Anda. Jalankan perintah pemulihan dotnet untuk memulihkan dependensi baru Anda.

Kompilasi ulang aplikasi Anda.

Jika setelah kompilasi ulang, Anda akan melihat peringatan konflik Dependensi, Anda harus memperbarui dependensi langsung lainnya ke versi yang sesuai. Misalnya jika proyek Anda mengacu pada Microsoft.AspNetCore.Routing dengan nomor versi 1.0.1 saat Anda memperbarui paket Microsoft.AspNetCore.Mvc ke 1.0.4, kompilasi akan melemparkan:

Konflik Dependensi NU1012. Microsoft.AspNetCore.Mvc.Core 1.0.4 mengharapkan Microsoft.AspNetCore.Routing >= 1.0.4 tetapi menerima 1.0.1

Untuk memperbaikinya, edit versi untuk paket yang diharapkan menjadi versi yang diharapkan dengan memperbarui csproj atau project.json Anda dengan cara yang sama seperti yang Anda gunakan untuk memperbarui versi paket yang rentan.

Setelah mengatasi semua dependensi langsung, Anda juga harus meninjau dependensi transitif Anda.

Meninjau Dependensi Transitif

Ada dua cara untuk melihat dependensi transitif. Anda dapat menggunakan Penjelajah Solusi Visual Studio, atau Anda dapat meninjau file project.lock.json (project.json/VS2015) atau project.assets.json (csproj/VS2017).

Menggunakan Visual Studio Penjelajah Solusi (VS2015)

Jika Anda ingin menggunakan Visual Studio 2015, buka proyek Anda di Visual Studio 2015 lalu tekan Ctrl+; untuk mengaktifkan pencarian di Penjelajah Solusi. Cari masing-masing nama paket yang rentan dan catat nomor versi hasil apa pun yang Anda temukan.

Misalnya, mencari Microsoft.AspNetCore.Mvc.Core dalam proyek contoh yang berisi referensi ke Microsoft.AspNetCore.Mvc memperlihatkan hasil berikut di Visual Studio 2015.

Gambar 1: Mencari referensi di Visual Studio 2015

Hasil pencarian muncul sebagai pohon. Dalam hasil ini, Anda dapat melihat kami telah menemukan referensi ke Microsoft.AspNetCore.Mvc, versi 1.0.1, versi yang rentan.

Entri pertama di bawah judul Referensi mengacu pada kerangka kerja target yang digunakan aplikasi Anda. Ini akan menjadi . NETCoreApp, . NETStandard atau . NET-Framework-vX.Y.Z (di mana X.Y.Z adalah nomor versi aktual) tergantung pada cara Anda mengonfigurasi aplikasi Anda. Di bawah kerangka kerja target Anda akan menjadi daftar paket yang telah Anda ambil dependensinya secara langsung. Dalam contoh ini, aplikasi mengambil dependensi pada Microsoft.AspNetCore.Mvc. Microsoft.AspNetCore.Mvc pada gilirannya memiliki simpul daun yang mencantumkan dependensi dan versinya. Dalam hal ini paket Microsoft.AspNetCore.Mvc mengambil dependensi pada versi Microsoft.AspNetCore.Mvc.Core yang rentan dan banyak paket lainnya.

Meninjau project.lock.json secara manual (project.json/VS2015)

Buka file project.lock.json di editor Anda. Kami sarankan Anda menggunakan editor yang memahami json dan memungkinkan Anda untuk menciutkan dan memperluas simpul untuk meninjau file ini; Visual Studio dan Visual Studio Code menyediakan fungsionalitas ini.

Jika Anda menggunakan Visual Studio, file project.lock.json berada "di bawah" file project.json. Klik segitiga penunjuk kanan, ▷, di sebelah kiri file project.json untuk memperluas pohon solusi untuk mengekspos file project.lock.json. Gambar 1 di bawah ini menunjukkan proyek dengan file project.json diperluas untuk menampilkan file project.lock.json.

Gambar 2: lokasi file project.lock.json

Cari file project.lock.json untuk string "Microsoft.AspNetCore.Mvc.Core/1.1.0". Jika file project.lock.json Anda menyertakan string ini, Anda memiliki dependensi pada paket yang rentan.

Memperbaiki dependensi transitif (project.json/VS2015)

Jika Anda belum menemukan referensi ke paket yang rentan, ini berarti tidak ada dependensi langsung Anda tergantung pada paket yang rentan atau Anda telah memperbaiki masalah dengan memperbarui dependensi langsung.

Jika tinjauan dependensi transitif Anda menemukan referensi ke salah satu paket yang rentan, Anda harus menambahkan dependensi langsung ke paket yang diperbarui ke file project.json Anda untuk mengambil alih dependensi transitif. Buka project.json Anda dan temukan bagian dependensi. Contohnya:


      "dependencies": {
        "Microsoft.NETCore.App": {
          "version": "1.0.1",
          "type": "platform"
        },
        "Microsoft.AspNetCore.Server.Kestrel": "1.1.0",
        "Microsoft.AspNetCore.Mvc": "1.1.0"
      }

Untuk setiap paket rentan yang dikembalikan pencarian Anda, Anda harus menambahkan dependensi langsung ke versi yang diperbarui dengan menambahkannya ke file project.json. Anda melakukan ini dengan menambahkan baris baru ke bagian dependensi, merujuk pada versi tetap. Misalnya, jika pencarian Anda menunjukkan referensi transitif ke System.Net.Security yang rentan versi 4.0.0, Anda akan menambahkan referensi ke versi tetap yang sesuai, 4.0.1. Edit file project.json sebagai berikut:


      "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"
      }

Setelah Anda menambahkan dependensi langsung ke paket tetap, simpan file project.json Anda.

Jika Anda menggunakan Visual Studio, simpan file project.json yang diperbarui dan Visual Studio akan memulihkan versi paket baru. Anda dapat melihat hasil pemulihan dengan membuka Jendela Output (Ctrl+Alt+O) dan mengubah daftar drop-down Tampilkan output dari ke Manajer Paket.

Jika Anda tidak menggunakan Visual Studio, buka baris perintah dan ubah ke direktori proyek Anda. Jalankan perintah pemulihan dotnet untuk memulihkan dependensi baru Anda.

Menggunakan Visual Studio Penjelajah Solusi (VS2017)

Jika Anda ingin menggunakan Penjelajah Solusi, buka proyek Anda di Visual Studio 2017, lalu tekan Ctrl+; untuk mengaktifkan pencarian di Penjelajah Solusi. Cari masing-masing nama paket yang rentan dan catat nomor versi hasil apa pun yang Anda temukan.

Misalnya, mencari Microsoft.AspNetCore.Mvc.Core dalam proyek contoh yang berisi paket yang mengambil dependensi pada Microsoft.AspNetCore.Mvc menunjukkan hasil berikut di Visual Studio 2017.

Gambar 3: Mencari referensi di Visual Studio 2017

Hasil pencarian muncul sebagai pohon. Dalam hasil ini, Anda dapat melihat kami telah menemukan referensi ke Microsoft.AspNetCore.Mvc.Core versi 1.1.2.

Di bawah node Dependensi akan menjadi simpul NuGet. Di bawah simpul NuGet akan menjadi daftar paket yang telah Anda ambil dependensinya secara langsung dan versinya. Dalam contoh ini, aplikasi mengambil dependensi langsung pada Microsoft.AspNetCore.Mvc. Microsoft.AspNetCore.Mvc pada gilirannya memiliki simpul daun yang mencantumkan dependensi dan versinya. Dalam contoh paket Microsoft.AspNetCore.Mvc mengambil dependensi pada versi Microsoft.AspNetCore.Mvc.ApiExplorer yang pada gilirannya mengambil dependensi pada versi Microsoft.AspNetCore.Mvc.Core yang rentan.

Meninjau project.assets.json secara manual (VS2017)

Buka file project.assets.json dari direktori obj proyek Anda di editor Anda. Kami sarankan Anda menggunakan editor yang memahami json dan memungkinkan Anda untuk menciutkan dan memperluas simpul untuk meninjau file ini; Visual Studio dan Visual Studio Code menyediakan fungsionalitas ini.

Cari file project.assets.json untuk setiap nama paket dalam tabel paket yang rentan, diikuti oleh /. Misalnya mencari Microsoft.AspNetCore.Mvc akan memerlukan menggunakan string pencarian "Microsoft.AspNetCore.Mvc/". Jika file project.assets.json Anda menyertakan string ini, dan nomor versi lengkap (angka setelah / dalam hit pencarian apa pun) cocok dengan salah satu versi rentan yang tercantum sebelumnya, Anda memiliki dependensi pada paket yang rentan.

Memperbaiki dependensi transitif (csproj/VS2017)

Jika Anda belum menemukan referensi ke paket yang rentan, ini berarti tidak ada dependensi langsung Anda tergantung pada paket yang rentan atau Anda telah memperbaiki masalah dengan memperbarui dependensi langsung.

Jika tinjauan dependensi transitif Anda menemukan referensi ke salah satu paket rentan, Anda harus menambahkan dependensi langsung ke paket yang diperbarui ke file csproj Anda untuk mengambil alih dependensi transitif. Buka file projectname.csproj Anda di editor Anda, atau klik kanan proyek di Visual Studio 2017 dan pilih Edit projectname.csproj dari menu konten, di mana nama proyek adalah nama proyek Anda. Cari node PackageReference, misalnya:


    <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>

Untuk setiap paket rentan yang dikembalikan pencarian Anda, Anda harus menambahkan dependensi langsung ke versi yang diperbarui dengan menambahkannya ke file csproj. Anda melakukan ini dengan menambahkan baris baru ke bagian dependensi, merujuk pada versi tetap. Misalnya, jika pencarian Anda menunjukkan referensi transitif ke System.Net.Security yang rentan versi 4.3.0, Anda akan menambahkan referensi ke versi tetap yang sesuai, 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>

Setelah Anda menambahkan referensi dependensi langsung, simpan file csproj Anda.

Jika Anda menggunakan Visual Studio, simpan file csproj yang diperbarui dan Visual Studio akan memulihkan versi paket baru. Anda dapat melihat hasil pemulihan dengan membuka Jendela Output (Ctrl+Alt+O) dan mengubah daftar drop-down Tampilkan output dari ke Manajer Paket.

Jika Anda tidak menggunakan Visual Studio, buka baris perintah dan ubah ke direktori proyek Anda. Jalankan perintah pemulihan dotnet untuk memulihkan dependensi baru Anda.

Membangun kembali aplikasi Anda

Akhirnya bangun kembali aplikasi Anda, uji seperti yang akan Anda lakukan secara normal dan sebarkan ulang menggunakan mekanisme penyebaran yang Anda sukai.

Informasi Lainnya

Melaporkan Masalah Keamanan

  • Jika Anda telah menemukan potensi masalah keamanan di .NET Core, silakan kirimkan detail email ke . Laporan mungkin memenuhi syarat untuk .NET Core Bug Bounty. Detail Bounty Bug .NET Core termasuk Syarat dan Ketentuan ada di https:.

Program Perlindungan Aktif Microsoft (MAPP)

Untuk meningkatkan perlindungan keamanan bagi pelanggan, Microsoft menyediakan informasi kerentanan kepada penyedia perangkat lunak keamanan utama sebelum setiap rilis pembaruan keamanan bulanan. Penyedia perangkat lunak keamanan kemudian dapat menggunakan informasi kerentanan ini untuk memberikan perlindungan terbaru kepada pelanggan melalui perangkat lunak atau perangkat keamanan mereka, seperti antivirus, sistem deteksi intrusi berbasis jaringan, atau sistem pencegahan intrusi berbasis host. Untuk menentukan apakah perlindungan aktif tersedia dari penyedia perangkat lunak keamanan, kunjungi situs web perlindungan aktif yang disediakan oleh mitra program, yang tercantum dalam Mitra Program Perlindungan Aktif Microsoft (MAPP).

Saran dan Komentar

Dukungan

  • Anda dapat mengajukan pertanyaan tentang masalah ini di GitHub di organisasi .NET Core atau ASP.NET Core. Ini terletak di </https:>https: dan </https:>https:. Repositori Pengumuman untuk setiap produk (https://github.com/dotnet/Announcements dan https://github.com/aspnet/Announcements) akan berisi nasihat ini sebagai masalah dan akan menyertakan tautan ke masalah diskusi tempat Anda dapat mengajukan pertanyaan.
  • Pelanggan di Amerika Serikat dan Kanada dapat menerima dukungan teknis dari Dukungan Keamanan. Untuk informasi selengkapnya, lihat Bantuan dan Dukungan Microsoft.
  • Pelanggan internasional dapat menerima dukungan dari anak perusahaan Microsoft lokal mereka. Untuk informasi selengkapnya, lihat Dukungan Internasional. * Microsoft TechNet Security menyediakan informasi tambahan tentang keamanan di produk Microsoft.

Ucapan terima kasih

Microsoft berterima kasih kepada yang berikut ini karena telah bekerja sama dengan kami untuk membantu melindungi pelanggan:

  • David Fernandez dari Sidertia Solutions untuk melaporkan ASP.NET Core Denial of Service Vulnerability (CVE-2017-0247)
  • Mikhail Shcherbakov untuk melaporkan Kerentanan Spoofing Inti ASP.NET (CVE-2017-0256)

Pengelakan

Informasi yang diberikan dalam saran ini disediakan "apa adanya" tanpa jaminan apa pun. Microsoft menolak semua jaminan, baik tersurat maupun tersirat, termasuk jaminan kelayakan untuk diperdagangkan dan kesesuaian untuk tujuan tertentu. Dalam hal apa pun, Microsoft Corporation atau pemasoknya tidak bertanggung jawab atas kerusakan apa pun termasuk kerusakan langsung, tidak langsung, insidental, konsekuensial, kehilangan keuntungan bisnis atau kerusakan khusus, bahkan jika Microsoft Corporation atau pemasoknya telah diberi tahu tentang kemungkinan kerusakan tersebut. Beberapa negara bagian tidak mengizinkan pengecualian atau batasan tanggung jawab untuk kerusakan konsekuensial atau insidental sehingga batasan sebelumnya mungkin tidak berlaku.

Revisi

  • V1.0 (9 Mei 2017): Nasihat diterbitkan.
  • V1.1 (10 Mei 2017): Penasihat direvisi untuk menyertakan tabel CVE masalah dan deskripsinya. Ini hanya perubahan informasi.

Halaman yang dihasilkan 2017-05-10 13:08-07:00. </https:>