Reverse stack in Multics


I came across an interesting article around the direction of stack growth and did some digging around for the same, summarised below.

Quoting from Thirty Years Later: Lessons from the Multics Security Evaluation, Section 2.3.2

Third, stacks on the Multics processors grew in the positive direction, rather than the negative direction. This meant that if you actually accomplished a buffer overflow, you would be overwriting unused stack frames, rather than your own return pointer, making exploitation much more difficult.

Intel Microprocessors: 8008 to 8086

The stack pointer was chosen to run “downhill” (with the stack advancing toward lower memory) to simplify indexing into the stack from the user’s program (positive indexing) and to simplify displaying the contents of the stack from a front panel.

Some more links on the topic, which also contain many external links -

Updated:

Leave a Comment