BrokenType est un ensemble d'outils conçus pour tester la robustesse et la sécurité des logiciels de rastérisation de polices, en particulier les bases de code sujettes à des problèmes de corruption de mémoire (écrites en C/C++ et langages similaires). Il se compose des éléments suivants :
La description et les instructions d'utilisation des utilitaires se trouvent dans leurs README correspondants.
Les programmes et scripts ont été utilisés avec succès en 2015-2019 pour découvrir et signaler 20 vulnérabilités dans le code de rastérisation des 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 suivants du blog Google Project Zero :
et la conférence "Reverse Engineering and Exploing Font Rasterizers" donnée en septembre 2015 lors de la conférence 44CON à Londres. Les deux problèmes les plus notables détectés par l'outil étaient CVE-2015-2426 et CVE-2015-2455 - une collision de bugs OTF avec un exploit trouvé dans la fuite de Hacking Team, et une collision de bugs TTF avec l'exploit de KeenTeam pour pwn2own 2015.
Ce n'est pas un produit Google officiel.