Before revision: A Shadow stack is a mechanism for maintaining control flow integrity by mitigating return address overwrites such as those seen during exploitation of a stack buffer overflow.
After revision: In software, a shadow stack is a mechanism for maintaining control-flow integrity by mitigating return address overwrites such as those seen during exploitation of a stack buffer overflow.