
Ensemble d'outils de fuzzing de polices TrueType et OpenType
BrokenType est un ensemble d'outils conçus pour tester la robustesse et la sécurité des logiciels de pixellisation (rasterization) de polices, en particulier les codebases sujettes aux corruptions mémoire (écrites en C/C++ et langages similaires). Il comprend les composants suivants :
La description et les instructions d'utilisation des utilitaires se trouvent dans leurs README respectifs.
Les programmes et scripts ont été utilisés avec succès entre 2015 et 2019 pour découvrir et signaler 20 vulnérabilités dans le code de pixellisation de polices présent dans le noyau Windows (pilotes win32k.sys et atmfd.dll), 19 failles de sécurité dans la bibliothèque Microsoft Uniscribe en mode utilisateur, ainsi que 9 bugs dans la bibliothèque FontSub.dll et plusieurs problèmes dans DirectWrite. Les efforts de fuzzing ont été discutés dans les articles de blog Google Project Zero suivants :
et la présentation « Reverse engineering and exploiting font rasterizers » donnée en septembre 2015 à la conférence 44CON à Londres. Les deux problèmes les plus notables trouvés par l'outil sont CVE-2015-2426 et CVE-2015-2455 - une collision de bug OTF avec un exploit trouvé dans la fuite de Hacking Team, et une collision de bug TTF avec l'exploit de KeenTeam pour pwn2own 2015.
Ceci n'est pas un produit officiel de Google.