Aller au contenu

Glossaire

Attaques sur les structures FILE (FSOP)

Corrompre un objet FILE de la glibc pour qu'un appel stdio normal soit dispatché via un pointeur de vtable contrôlé par l'attaquant vers un code choisi.

Le file-structure-oriented programming (FSOP) cible les objets FILE derrière stdin, stdout et fopen. Chaque objet se termine par un pointeur vers une vtable de pointeurs de fonctions, et les appels stdio tels que fwrite, fread et fclose sont dispatchés à travers elle. Une écriture arbitraire qui redirige le pointeur de vtable — ou qui façonne l'objet de sorte qu'une entrée de vtable légitime s'exécute avec des arguments contrôlés — transforme la prochaine opération stdio en détournement du flux de contrôle.

Le FSOP a gagné en importance après que la glibc 2.34 a supprimé __malloc_hook et __free_hook. La validation de vtable de la glibc 2.24 bloque les vtables entièrement falsifiées, si bien que les variantes modernes (la famille House of Apple) réutilisent des vtables autorisées comme _IO_wfile_jumps. Il repose sur le même bug amont qu'un écrasement de la GOT : une seule écriture arbitraire. Voir le tutoriel FSOP.