Eszközjegyzékek a gyökérmappában
A .NET már nem keres helyi eszközjegyzékfájlokat a Windows gyökérmappájában, kivéve, ha felül van bírálva a DOTNET_TOOLS_ALLOW_MANIFEST_IN_ROOT
környezeti változón keresztül. Ez a módosítás nem érinti a Linuxot vagy a macOS-t.
Előző viselkedés
Korábban a .NET SDK helyi eszközei ellenőrizték a gyökérmappát minden platformon, amikor eszközjegyzéket keresnek. A keresés az aktuális könyvtártól a könyvtárfától a gyökérmappáig folytatódott, amíg nem talált jegyzékfájlt. A .NET minden szinten megkeresi a dotnet-tools.json nevű eszközjegyzéket egy .config almappában. Windows rendszeren, ha nem található más eszközjegyzék, az SDK végül keresett egy eszközjegyzéket a C:\.config\dotnet-tools.json.
Új viselkedés
A .NET alapértelmezés szerint nem keres az aktuális könyvtárfa gyökérmappájában Windows rendszeren, kivéve, ha felül van bírálva a DOTNET_TOOLS_ALLOW_MANIFEST_IN_ROOT
környezeti változón keresztül. DOTNET_TOOLS_ALLOW_MANIFEST_IN_ROOT
alapértelmezés szerint be false
van állítva.
Bevezetett verzió
- .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
A kompatibilitástörő változás típusa
Ez a változás viselkedésbeli változás.
A változás oka
Ez a módosítás egy biztonsági probléma megoldása érdekében történt. Mivel minden felhasználó létrehozhat fájlokat és mappákat a Windows C:\ könyvtárában, az alacsony jogosultságú támadók eltéríthetik a C:\.config\dotnet-tools.json fájlt. Amikor egy rendszergazda eszközparancsot dotnet
futtat, az eszköz rosszindulatú konfigurációs információkat olvashat a fájlból, és rosszindulatú eszközöket tölthet le és futtathat.
Javasolt művelet
Az új viselkedés letiltásához állítsa a környezeti változót a DOTNET_TOOLS_ALLOW_MANIFEST_IN_ROOT
következőre true
: vagy 1
.