Re: [PATCH v9 23/42] Documentation/x86: Add CET shadow stack description
From: szabolcs.nagy@arm.com <hidden>
Date: 2023-06-14 10:44:36
Also in:
linux-arch, linux-doc, linux-mm, lkml
The 06/13/2023 19:57, Edgecombe, Rick P wrote:
On Tue, 2023-06-13 at 18:57 +0100, Mark Brown wrote:quoted
quoted
quoted
quoted
For my part, the thing I would really like to see unified as much > > as possible is at the app developer's interface (glibc/gcc). The idea would be to make it easy for app developers to know if their app supports shadow stack. There will probably be some differences, but > > it would be great if there was mostly the same behavior and a small > > list of differences. I'm thinking about the behavior of longjmp(), swapcontext(), etc.Yes, very much so. sigaltcontext() too.For alt shadow stack's, this is what I came up with: https://lore.kernel.org/lkml/20220929222936.14584-40-rick.p.edgecombe@intel.com/ (local) Unfortunately it can't work automatically with sigaltstack(). Since it has to be a new thing anyway, it's been left for the future. I guess that might have a better chance of being cross arch.
i dont think you can add sigaltshstk later. libgcc already has unwinder code for shstk and that cannot handle discontinous shadow stack. (may affect longjmp too depending on how it is implemented) we can change the unwinder now to know how to switch shstk when it unwinds the signal frame and backport that to systems that want to support shstk. or we can introduce a new elf marking scheme just for sigaltshstk when it is added so incompatibility can be detected. or we simply not support unwinding with sigaltshstk which would make it pretty much useless in practice. IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.