Computer Science I / The Instruction Execution Cycle
Practice question · Multiple choice

A buffer overflow that overwrites a return address can make a program execute the attacker's code. Which architectural feature makes that possible?

Hints
  1. Ask what the return address physically is, and what kind of memory it lives in.
  2. Under a Harvard architecture with separate instruction memory, could data become code?
Show the answer

D. Instructions and data sharing one memory and one address space

Why

Stored-program design is what lets a program be loaded and compiled, and it is what lets data become an address to jump to. The whole class of attack follows from the von Neumann trade, which is why the defences are bolt-ons: non-executable stacks, address randomisation and stack canaries.

Read the lesson: The Instruction Execution Cycle →

Practise The Instruction Execution Cycle

The app has 8 more questions on this lesson, and keeps your place in the course. Computer Science I is free to start.

More questions on The Instruction Execution Cycle