
Application de preuve de concept pour écraser les polices sur iOS en utilisant CVE-2022-46689.
Application de preuve de concept pour écraser les polices sur iOS utilisant CVE-2022-46689.
Fonctionne sur iOS 16.1.2 et inférieur (testé sur iOS 16.1) sur des appareils non jailbreakés.
IPA disponible dans la section Releases.
Polices incluses :
Vous pouvez également importer des polices personnalisées qui ont été portées pour iOS.
DejaVu Sans Condensed | DejaVu Serif | DejaVu Sans Mono | Choco Cooky

Go Regular | Go Mono | Segoe UI | Comic Sans MS

Hanna Soft + JoyPixels | Bronkoh | Noto Serif SC | Fira Sans

Crédit des captures d'écran : @ev_ynw pour les polices portées Hanna Soft et Bronkoh, JoyPixels pour la police d'emoji
Le problème CVE-2022-46689 - d'après ce que je sais - ne permet d'écraser que 16383 octets sur 16384 : le dernier octet de la page ne peut pas être écrit.
(Je pourrais me tromper)
Pour contourner cela, je conditionne la police en utilisant le format de police web WOFF2, qui est supporté sur iOS. WOFF2 utilise Brotli pour la compression, ce qui permet d'insérer un remplissage pour sauter le dernier octet.
Voir repackfonts/make_woff2src.sh pour les détails : ce script :
repackfonts/BrotliPadding.swift pour décompresser le fichier WOFF2 et insérer un remplissage pour sauter le 16384ème octet