Non Executable Stack
Non Executable Stack (NX) is a security feature in computer systems that marks memory regions, such as the stack, as non-executable to prevent code execution from those areas. It is implemented through hardware support like the NX bit in modern processors and software mechanisms in operating systems. This helps mitigate common exploits like buffer overflow attacks by stopping malicious code from running in memory regions intended only for data storage.
Developers should understand and use Non Executable Stack when building secure applications, especially in systems programming, embedded systems, or any environment prone to memory corruption vulnerabilities. It is critical for preventing stack-based attacks, such as return-oriented programming (ROP), and is a standard practice in modern operating systems like Linux (with PaX or Exec Shield) and Windows (with Data Execution Prevention).