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

Risques

Atteinte à la confidentialité des données

Exploitation

La vulnérabilité exploitée est du type
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

Solutions ou recommandations

Correctif intégré via le commit 5a280ecde6f324de0d226261036e736e0cb49a71 sur le dépôt officiel FreeType, aucune version taguée officielle intégrant ce correctif n'étant précisée dans les sources consultées à ce jour