X86_64 CPUs can support Shadow Stack (SHSTK). SHSTK helps to mitigate against Return Oriented Programming (ROP) expoits, as well as others that target a process's call stack.
On linux binaries need to be marked with a note section .note.gnu.property marking support for GNU_PROPERTY_X86_FEATURE_1_SHSTK in order to support SHSTK. I believe Windows also supports SHSTK but have no knowledge of how.
Go should ideally support SHSTK on Linux and add the note section showing it does support it. Provided Go does not change the stack I believe it should be sufficient for Go to mark the binaries it generates.
#66054 is for the other half of Control-flow Enforcement Technology (CET).
X86_64 CPUs can support Shadow Stack (SHSTK). SHSTK helps to mitigate against Return Oriented Programming (ROP) expoits, as well as others that target a process's call stack.
On linux binaries need to be marked with a note section
.note.gnu.propertymarking support forGNU_PROPERTY_X86_FEATURE_1_SHSTKin order to support SHSTK. I believe Windows also supports SHSTK but have no knowledge of how.Go should ideally support SHSTK on Linux and add the note section showing it does support it. Provided Go does not change the stack I believe it should be sufficient for Go to mark the binaries it generates.
#66054 is for the other half of Control-flow Enforcement Technology (CET).