Megosztás a következőn keresztül:


Alapértelmezés szerint támogatott CET

apphost és singlefilehost mostantól Intel CET-kompatibilisként vannak megjelölve (a beállítással /CETCOMPAT lefordítva). Ez a módosítás a .NET-alkalmazások biztonságának növelése érdekében történt. Azonban korlátozást vezet be azokra a megosztott kódtárakra, amelyekkel a .NET-alkalmazások betölthetnek és együttműködhetnek. A kódtárak nem állíthatják be a szálkörnyezetet olyan helyre, ahol az utasításmutató nem található az árnyékveremen vagy a kivételkezeléshez engedélyezett folytatási címek táblájában.

Előző viselkedés

Korábban a .NET-folyamatba betöltött megosztott kódtárak a SetThreadContext, az RtlRestoreContextNtContinue/ vagy a kivételkezelők használatával a folyamatcímtér bármely helyére be tudták állítani a szálkörnyezetet.

Új viselkedés

A .NET 9-től kezdődően a .NET-folyamatba betöltött megosztott kódtárak csak a SetThreadContext, az RtlRestoreContext/NtContinue vagy a kivételkezelők használatával állíthatják be a szálkörnyezetet a következő helyekre:

  • Az árnyékveremen jelenik meg.
  • A kivételkezelés engedélyezett folytatási címeinek táblázatában (amelyet a fordító vagy az /EHCONT SetProcessDynamicEHContinuationTargets API hoz létre).

Ha a kódtárak megpróbálnak más helyre módosítani egy szálkörnyezetet, a folyamat leáll.

Bevezetett verzió

.NET 9 előzetes verzió 6

A kompatibilitástörő változás típusa

Ez a változás befolyásolhatja a bináris kompatibilitást.

A változás oka

A CET engedélyezése növeli a .NET-alkalmazások biztonságát a hardveresen kényszerített veremvédelem hozzáadásával, amely robusztus védelmet nyújt a ROP-kihasználások ellen (visszatérés-orientált programozás).

Áthidaló megoldások:

  • Az alkalmazás projektfájljához (például .csproj fájlhoz) hozzáadva <CETCompat>false</CETCompat> letilthatja a CET-et.
  • A Windows biztonság alkalmazással vagy csoportházirenddel tilthatja le az adott .NET-alkalmazás hardver által támogatott verem-kényszerítését. További információ: A kihasználtság elleni védelem engedélyezése.

Érintett API-k

  • n/a