NuGet Uyarıları NU1901, NU1902, NU1903, NU1904

uyarı NU1902: 'NuGet.Protocol' 5.11.2 paketinde bilinen bir orta önem derecesi güvenlik açığı var, https://github.com/advisories/GHSA-g3q9-xf95-8hp5

Uyarı kodu bilinen güvenlik açığı önem düzeyine bağlı olarak değişir:

Uyarı Kodu Önem
NU1901 Iowa
NU1902 ılımlı
NU1903 yüksek
NU1904 critical

Sorun

Projeniz için geri yüklenen bir pakette bilinen bir güvenlik açığı vardır.

Daha fazla bilgi için, denetim paketleriyle ilgili belgelere bakın.

Çözüm

Projeniz bilinen bir güvenlik açığına sahip bir paket ve yardımcı olabilecek araçlar kullandığında önerilen eylemlerimiz hakkında daha fazla tartışma içeren bir blog gönderimiz var.

Paketin daha yeni bir sürümüne yükseltmenin uyarıyı çözmesi olasıdır. Projeniz pakete doğrudan başvurmuyorsa (geçişli bir pakettir), dotnet nuget why hangi paketin projenize eklenmesine neden olduğunu anlamak için kullanılabilir. Paketin hangi sürümlerinin düzeltildiğini görmek için güvenlik açığı önerisi tarafından sağlanan URL'yi denetleyebilirsiniz veya paketin hangi sürümlerinin kullanılabilir olduğunu görmek için yapılandırılmış paket kaynaklarınızı kontrol edebilirsiniz. Visual Studio'nun paket yöneticisi kullanıcı arabirimi hangi paket sürümlerinin etkilendiğini ve hangilerinin bilinen güvenlik açıklarına sahip olmadığını gösterebilir.

Bu uyarılar, kullandığınız TreatWarningsAsErrorsiçin geri yüklemenin başarısız olmasına neden oluyorsa, bu kodların uyarı olarak kalmasına izin vermek için öğesini ekleyebilirsiniz <WarningsNotAsErrors>NU1901;NU1902;NU1903;NU1904</WarningsNotAsErrors> .

Rahat olduğunuz bir düzeyden daha az ciddi güvenlik açıklarıyla ilgili bildirim almak istemiyorsanız, proje dosyasını düzenleyebilir ve değeri , , highmoderateveya criticalolarak ayarlanmış lowbir MSBuild özelliği NuGetAuditLevelekleyebilirsiniz. Örneğin, <NuGetAuditLevel>high</NuGetAuditLevel>.

Belirli bir öneriyi engellemek istiyorsanız, bir MSBuild NuGetAuditSuppress öğesi ekleyin. Örneğin, <NuGetAuditSuppress Include="https://github.com/advisories/GHSA-g3q9-xf95-8hp5" />. NuGetAuditSuppress, kullanan PackageReferenceprojeler için VS 17.11 ve .NET 8.0.400 SDK'sından ve kullanan packages.configprojeler için VS 17.12'den kullanılabilir.

NuGet'in geri yükleme sırasında bilinen güvenlik açıklarına sahip paketleri denetlemesini istemiyorsanız, <NuGetAudit>false</NuGetAudit> proje dosyanıza veya dosyanıza ekleyinDirectory.Build.props.<PropertyGroup> Geliştirici makinelerinde NuGet Denetimi çalıştırmak, ancak CI işlem hatlarında devre dışı bırakmak istiyorsanız, MSBuild içeri aktarma ortam değişkenlerinden yararlanabilir ve işlem hattı tanımınızda olarak false ayarlanmış bir NuGetAudit ortam değişkeni oluşturabilirsiniz.