다음을 통해 공유


'dotnet restore'는 전이적 패키지를 감사합니다.

dotnet restore 프로젝트의 종속성과 도구를 복원하는 명령은 이제 기본적으로 전이적 패키지에 대한 보안 취약성 경고를 생성합니다.

이전 동작

.NET 8 에서는 알려진 보안 취약성이 있는 패키지에 대한 경고를 내보내기 위해 NuGetAudit 이 도입되었습니다. 기본적으로 직접 패키지 참조만 감사되었지만 모든 패키지를 포함하도록 속성을 변경할 NuGetAuditMode 수 있었습니다.

새 동작

.NET 9 NuGetAuditMode 부터는 기본적으로 all 명시적으로 설정되지 않은 경우로 설정됩니다. 이 설정은 알려진 취약성이 있는 전이적 패키지 (프로젝트에서 직접 참조하는 패키지의 종속성)로 인해 경고가 보고됨을 의미합니다. 프로젝트에서 오류를 경고로 처리하는 경우 이 동작으로 인해 복원 오류가 발생할 수 있습니다.

도입된 버전

.NET 9 미리 보기 6

호환성이 손상되는 변경의 형식

이 변경 사항은 동작 변경입니다.

변경 이유

알려진 취약성이 있는 패키지는 프로젝트에서 취약한 패키지를 직접 참조하거나 사용하지 않더라도 앱을 악용할 수 있습니다. .NET 9의 새로운 기능을 사용하면 패키지 그래프를 더 쉽게 조사하고 앱에서 취약한 패키지를 사용하는 방법과 관련이 없는 권고를 표시하지 않도록 할 수 있습니다.

  • 경고로 인해 빌드가 손상될 가능성을 명시적으로 줄이려면 사용 및 <TreatWarningsAsErrors> 사용을 <WarningsNotAsErrors>NU1901;NU1902;NU1903;NU1904</WarningsNotAsErrors> 고려하여 사용자 환경에서 알려진 보안 취약성이 계속 허용되는지 확인할 수 있습니다.

  • 알려진 취약성이 dotnet nuget why 포함된 전이적 패키지를 발생시킨 최상위 패키지를 찾고 업그레이드하여 전이적 취약성이 사라졌는지 확인하는 등의 도구를 사용합니다. 그렇지 않은 경우 해당 패키지를 추가하여 전이적 패키지를 최상위 패키지로 PackageReference 승격하고 최신 버전으로 업그레이드합니다.

  • 특정 권고를 표시하지 않으려면 프로젝트 파일에 항목을 추가할 <NuGetAuditSuppress Include="url" /> 수 있습니다. 여기서 url NuGet의 경고 메시지에 보고된 URL입니다.

    <ItemGroup>
        <NuGetAuditSuppress Include="url" />
    </ItemGroup>
    
  • 알려진 취약성이 있는 직접 패키지 참조에 대해서만 경고를 표시하려면 프로젝트 파일로 설정할 <NuGetAuditMode> direct 수 있습니다.

    <PropertyGroup>
      <NuGetAuditMode>direct</NuGetAuditMode>
    </PropertyGroup>
    

참고 항목