Manifesty nástrojů v kořenové složce

.NET už v kořenové složce ve Windows nevytáhá soubory manifestu místního nástroje, pokud je nepřepíšete prostřednictvím DOTNET_TOOLS_ALLOW_MANIFEST_IN_ROOT proměnné prostředí. Tato změna nemá vliv na Linux ani macOS.

Předchozí chování

Dříve místní nástroje sady .NET SDK při hledání manifestu nástroje kontrolují kořenovou složku na všech platformách. Hledání pokračovalo z aktuálního adresáře ve stromu adresáře do kořenové složky, dokud nenalezl manifest. Na každé úrovni .NET vyhledá manifest nástroje s názvem dotnet-tools.json v podsložce .config . Pokud v systému Windows nebyl nalezen žádný jiný manifest nástroje, sada SDK nakonec hledala manifest nástroje v C:\.config\dotnet-tools.json.

Nové chování

.NET už ve Windows ve výchozím nastavení neprohledá v kořenové složce aktuálního stromu adresáře, pokud ji nepřepíšete prostřednictvím DOTNET_TOOLS_ALLOW_MANIFEST_IN_ROOT proměnné prostředí. DOTNET_TOOLS_ALLOW_MANIFEST_IN_ROOT je ve výchozím nastavení nastavená na false hodnotu.

Zavedená verze

  • .NET SDK 7.0.3xx
  • .NET SDK 7.0.1xx
  • .NET SDK 6.0.4xx
  • .NET SDK 6.0.3xx
  • .NET SDK 6.0.1xx
  • .NET SDK 3.1.4xx

Typ zásadní změny

Tato změna je změna chování.

Důvod změny

Tato změna byla provedena, aby se vyřešila bezpečnostní obava. Vzhledem k tomu, že všichni uživatelé mohou vytvářet soubory a složky v adresáři C:\ ve Windows, útočníci s nízkými oprávněními mohou zneuctět soubor C:\.config\dotnet-tools.json. Když správce spustí dotnet příkaz nástroje, může nástroj potenciálně číst škodlivé informace o konfiguraci ze souboru a stahovat a spouštět škodlivé nástroje.

Chcete-li zakázat nové chování, nastavte proměnnou DOTNET_TOOLS_ALLOW_MANIFEST_IN_ROOT prostředí na true hodnotu nebo 1.

Viz také