Skip to content

Glossary

File-structure attacks (FSOP)

Corrupting a glibc FILE object so a normal stdio call dispatches through an attacker-controlled vtable pointer into chosen code.

File-structure-oriented programming (FSOP) targets the FILE objects behind stdin, stdout and fopen. Each object ends with a pointer to a vtable of function pointers, and stdio calls such as fwrite, fread and fclose dispatch through it. An arbitrary write that redirects the vtable pointer — or crafts the object so a legitimate vtable entry runs with controlled arguments — turns the next stdio operation into control-flow hijack.

FSOP rose in importance after glibc 2.34 removed __malloc_hook and __free_hook. glibc 2.24's vtable validation blocks fully fake vtables, so modern variants (the House of Apple family) reuse allowed vtables like _IO_wfile_jumps. It relies on the same upstream bug as a GOT overwrite — one arbitrary write. See the FSOP walkthrough.