次の方法で共有


"dotnet restore" によってセキュリティの脆弱性の警告が生成される

プロジェクトの依存関係とツールを復元するdotnet restore コマンドによって、デフォルトでセキュリティ脆弱性の警告が生成されるようになりました。

以前の動作

以前は、dotnet restore ではセキュリティの脆弱性に関する警告はデフォルトで出力されませんでした。

新しい動作

.NET 8 SDK 以降のバージョンで開発している場合は、dotnet restore では復元されたすべてのプロジェクトに対してデフォルトでセキュリティ脆弱性の警告が生成されます。 ソリューションまたはプロジェクトを読み込んだり、CI/CD スクリプトを実行する際に、<TreatWarningsAsErrors> を有効にしていると、この変更によってワークフローが中断される可能性があります。

導入されたバージョン

.NET 8 Preview 4

破壊的変更の種類

この変更は、動作変更です。

変更理由

多くのユーザーは、復元するパッケージに何らかの既知のセキュリティ上の脆弱性が含まれているかどうかを知りたいと考えています。 この機能は非常に需要のある機能となっていました。 セキュリティ上の懸念は毎年増加し続けており、一部の既知のセキュリティの問題はわかりづらいため、すぐに対処することができません。

推奨されるアクションに記載されているプロパティは、プロジェクト ファイル (*.csproj や *.fsproj ファイルなど) または directory.Build.props ファイル 設定できます。

  • 警告が原因でビルドが破損する可能性を明示的に減らすために、<TreatWarningsAsErrors> の使用を検討し、<WarningsNotAsErrors>NU1901;NU1902;NU1903;NU1904</WarningsNotAsErrors> を設定して、既知のセキュリティ脆弱性が環境内で引き続き許可されるようにすることができます。

    <PropertyGroup>
      ...
      <TreatWarningsAsErrors>true</TreatWarningsAsErrors>
      <WarningsNotAsErrors>NU1901;NU1902;NU1903;NU1904</WarningsNotAsErrors>
    </PropertyGroup>
    
  • 別のセキュリティ監査レベルを設定する場合は、<NuGetAuditLevel> プロパティをプロジェクト ファイルに追加し、使用可能な値 lowmoderatehighcritical を指定します。

    <PropertyGroup>
      ...
      <NuGetAuditLevel>low</NuGetAuditLevel>
    </PropertyGroup>
    
  • これらの警告を無視する場合は、<NoWarn> を使用して NU1901-NU1904 警告を抑制できます。

    <PropertyGroup>
      ...
      <NoWarn>$(NoWarn);NU1901-NU1904</NoWarn>
    </PropertyGroup>
    
  • 新しい動作を完全に無効にするには、<NuGetAudit> プロジェクト プロパティを false に設定できます。

    <PropertyGroup>
      ...
      <NuGetAudit>false</NuGetAudit>
    </PropertyGroup>
    

関連項目