다음을 통해 공유


NuGet 경고 NU1901, NU1902, NU1903, NU1904

경고 NU1902: 패키지 'NuGet.Protocol' 5.11.2에는 알려진 보통 심각도 취약성이 있습니다. https://github.com/advisories/GHSA-g3q9-xf95-8hp5

경고 코드는 알려진 취약성 심각도 수준에 따라 변경됩니다.

경고 코드 심각도
NU1901 낮음
NU1902 온화한
NU1903 높음
NU1904 중요

문제

프로젝트에 대해 복원된 패키지에 알려진 취약성이 있습니다.

자세한 내용은 감사 패키지에 대한 설명서를 참조 하세요.

솔루션

프로젝트에서 알려진 취약성이 있는 패키지와 도움이 될 수 있는 도구를 사용할 때 권장되는 작업에 대해 더 자세히 설명하는 블로그 게시물이 있습니다.

최신 버전의 패키지로 업그레이드하면 경고가 해결될 수 있습니다. 프로젝트에서 패키지를 직접 참조하지 않는 경우(전이적 패키지) dotnet nuget why 프로젝트에 포함된 패키지를 이해하는 데 사용할 수 있습니다. 취약성 권고에서 제공하는 URL을 확인하여 수정된 패키지 버전을 확인하거나 구성된 패키지 원본을 확인하여 사용 가능한 패키지 버전을 확인할 수 있습니다. Visual Studio의 패키지 관리자 UI는 영향을 받는 패키지 버전과 알려진 취약성이 없는 패키지를 표시할 수 있습니다.

이러한 경고로 인해 사용 TreatWarningsAsErrors중이므로 복원이 실패하는 경우 이러한 코드를 경고로 유지하도록 추가할 <WarningsNotAsErrors>NU1901;NU1902;NU1903;NU1904</WarningsNotAsErrors> 수 있습니다.

익숙한 수준보다 덜 심각한 취약성에 대한 알림을 받지 않으려면 프로젝트 파일을 편집하고 값이 설정된 criticalhighmoderatelowMSBuild 속성을 NuGetAuditLevel추가할 수 있습니다. 예들 들어 <NuGetAuditLevel>high</NuGetAuditLevel>입니다.

특정 권고를 표시하지 않는 경우 MSBuild NuGetAuditSuppress 항목을 추가합니다. 예: <NuGetAuditSuppress Include="https://github.com/advisories/GHSA-g3q9-xf95-8hp5" />. NuGetAuditSuppress은 사용 중인 프로젝트의 경우 VS 17.11 및 .NET 8.0.400 SDK에서, 사용 중인 프로젝트의 packages.configPackageReference경우 VS 17.12에서 사용할 수 있습니다.

NuGet이 복원 중에 알려진 취약성이 있는 패키지를 확인하지 않으려면 프로젝트 파일 또는 Directory.Build.props 파일 내에 <PropertyGroup> 추가 <NuGetAudit>false</NuGetAudit> 합니다. 개발자 컴퓨터에서 NuGet 감사를 실행하지만 CI 파이프라인에서 사용하지 않도록 설정하려는 경우 MSBuild 가져오기 환경 변수를 활용하고 파이프라인 정의에 설정된 NuGetAudit 환경 변수를 false 만들 수 있습니다.

NuGet 6.12(Visual Studio/MSBuild 17.12 및 .NET 9.0.100 SDK)에서 NuGet은 기본값 NuGetAuditMode all을 로 변경했습니다. 즉, 알려진 취약성이 있는 전이적 패키지에 대한 보고서를 의미합니다. .NET 8의 기본값으로 되돌리도록 direct 값을 명시적으로 설정할 수 있습니다. 또는 새 버전의 SDK에 도입된 모든 새 경고 및 오류를 일시적으로 사용하지 않도록 속성을 SdkAnalysisLevel 설정할 8.0.400 수 있습니다. 특히 이 경우 기본값 NuGetAuditMode 은 다시 .로 direct변경됩니다.