WCU / Cybersecurity
~/CSC 472/Class 06/KP 14
Class 06 · KP 14 / 18

Why This Is Such a Strong Primitive

A single format string bug typically yields:

  • Arbitrary read (%s) —- dump canary, libc, PIE base, any memory you can point at.
  • Arbitrary write (%n) —- change any writable word: GOT, saved RIP, function pointers, loop counters, flags.
  • Repeatable: many programs loop, letting you leak then write in separate passes with known addresses.

Read + write + repeatable = effectively full control of the process, often

without needing a memory-corruption overflow at all.