Condividi tramite


CET supportato per impostazione predefinita

apphost e singlefilehost sono ora contrassegnati come Intel CET, compatibili (vengono compilati con l'opzione /CETCOMPAT ). Questa modifica è stata apportata per migliorare la sicurezza delle applicazioni .NET. Tuttavia, impone una limitazione alle librerie condivise con cui le app .NET possono caricare e interagire. Le librerie non sono autorizzate a impostare il contesto del thread in una posizione con un puntatore alle istruzioni non presente nello stack shadow o in una tabella di indirizzi di continuazione consentiti per la gestione delle eccezioni.

Comportamento precedente

In precedenza, le librerie condivise caricate nel processo .NET erano in grado di impostare il contesto del thread usando SetThreadContext, RtlRestoreContext/NtContinue o i relativi gestori eccezioni in qualsiasi posizione nello spazio indirizzi del processo.

Nuovo comportamento

A partire da .NET 9, le librerie condivise caricate nel processo .NET possono solo impostare il contesto del thread usando SetThreadContext, RtlRestoreContext/NtContinue o i relativi gestori di eccezioni in posizioni che sono:

  • Presente nello stack di ombreggiature.
  • In una tabella di indirizzi di continuazione consentiti per la gestione delle eccezioni (generata dall'opzione del /EHCONT compilatore o dall'API SetProcessDynamicEHContinuationTargets ).

Se le librerie tentano di modificare un contesto di thread in qualsiasi altra posizione, il processo viene terminato.

Versione introdotta

.NET 9 Anteprima 6

Tipo di modifica che causa un'interruzione

Questa modifica può influire sulla compatibilità binaria.

Motivo della modifica

L'abilitazione di CET migliora la sicurezza delle applicazioni .NET aggiungendo la protezione dello stack applicata dall'hardware che offre una protezione affidabile dagli exploit ROP (programmazione orientata al ritorno).

Soluzioni alternative:

  • Puoi rifiutare esplicitamente cet aggiungendo <CETCompat>false</CETCompat> al file di progetto dell'app (ad esempio, file con estensione csproj ).
  • Usare l'app Sicurezza di Windows o i criteri di gruppo per rifiutare esplicitamente l'applicazione dello stack supportata dall'hardware per l'applicazione .NET specifica. Per altre informazioni, vedere Abilitare la protezione dagli exploit.

API interessate

  • N/D