Aller au contenu

Glossaire

Vulnérabilité de chaîne de format

Un bug où une entrée non fiable est passée comme argument de format des fonctions de type printf, ce qui lui permet de lire ou d'écrire en mémoire via les spécificateurs de conversion (CWE-134).

Une vulnérabilité de chaîne de format (CWE-134) apparaît lorsqu'un programme appelle une fonction de la famille printf avec des données influencées par l'attaquant comme chaîne de format, par exemple printf(user_input) au lieu de printf("%s", user_input). Les spécificateurs de conversion présents dans l'entrée font alors lire à la fonction des valeurs qui ne lui ont jamais été fournies, fuyant le contenu de la mémoire et des adresses, et le spécificateur %n peut écrire en mémoire.

Les compilateurs signalent ce schéma avec -Wformat -Wformat-security, FORTIFY_SOURCE rejette %n dans les chaînes de format inscriptibles, et annoter les wrappers avec __attribute__((format(printf, ...))) étend les vérifications aux fonctions de journalisation personnalisées. Voir débordements d'entier et chaînes de format.