FreeType - CVE-2026-50811
Date de publication :
Il s'agit d'une vulnérabilité dans la fonction TT_Get_Var_Design() du fichier src/truetype/ttgxvar.c, utilisée par l'API publique FT_Get_Var_Design_Coordinates.
FreeType est une bibliothèque libre de rendu de polices de caractères, écrite en C, utilisée pour interpréter et afficher des formats de polices tels que TrueType, OpenType et Type 1. Elle est intégrée par défaut dans de nombreux systèmes d'exploitation, moteurs de rendu de navigateurs, environnements graphiques Linux et applications tierces ayant besoin d'afficher du texte.
Lorsqu'un appelant demande un nombre de coordonnées de conception supérieur au nombre réel d'axes de variation définis par une police TrueType variable (GX), la boucle chargée de compléter les coordonnées excédentaires continue de déréférencer un pointeur d'axe déjà avancé au-delà du tableau FT_Var_Axis valide. Cette lecture hors limites copie des données mémoire heap adjacentes dans le tampon de sortie fourni par l'appelant, au lieu de retourner des valeurs nulles comme le prévoit le contrat documenté de l'API. Des preuves de concept publiques démontrent une fuite d'un pointeur heap/FT_Face ainsi qu'une fuite d'un pointeur libc issu de free(), permettant de dériver la base libc en mémoire et donc de contourner l'ASLR.
Elle permet une divulgation d'informations mémoire pouvant servir de primitive à l'exploitation d'autres vulnérabilités.
Informations
La faille est activement exploitée : Non
Un correctif existe : Oui
Une mesure de contournement existe : Non
Atteinte à la confidentialité des données
Exploitation
CWE-125 : Out-of-bounds Read
Détails sur l'exploitation
• Vecteur d'attaque : Local
• Complexité de l'attaque : Faible
• Privilèges nécessaires pour réaliser l'attaque : Aucun
• Interaction d'un utilisateur ayant accès au produit est-elle nécessaire : Oui
• L'exploitation de la faille permet d'obtenir des droits privilégiés : Non
Preuve de concept
Une preuve de concept est disponible en sources ouvertes.
Systèmes ou composants affectés
FreeType versions 2.14.3 et antérieures, jusqu'au commit précédant 5a280ecde6f324de0d226261036e736e0cb49a71