Title: CSE 351 23au / LS15 Buffer Overflow

Q: Generally, writing past the end of a buffer and overwriting adjacent memory locations is known as ___
A: buffer overflow

Q: What is the fundamental reason why buffer overflow occurs in C?
A: C does not check array bounds, and our buffer is typically an array of memory

Q: In x86 Linux, the stack grows downwards and instructions are data stored in teh same memory.
Why is this problematic?
A: We could potentially overwrite data from callers’ stack frames and/or treat any data in memory as if it were an instruction

Q: A region of memory (usually an array) used to temporarily store data is known as a ___
A: buffer

Q: Related to video playback, what does buffering mean?
A: The website is downloading some extra buffer ahead of what is currently shown on screen. That way if your network slows down, the computer can read from the buffer without skipping

Q: True or false: Buffers can also store user input
A: True!
Because buffers can accept user input, it's a vulnerability that can be exploited with buffer overflow

Q: The form of buffer overflow where we write past the end of a local array on the stack is known as ___
A: stack smashing

Q: Writing instructions into the buffer and taking advantage of buffer overflow to modify the return address and executing the injected code is known as ___
A: code injection