En mars, Tavis Ormandi découvre un bug dans le noyau Windows. Sa particularité est qu'il impacte toutes les versions du système (de Windows 8 à NT4). Un mois plus tard, une élévation de privilèges basée sur ce bug est rendue publique. La vulnérabilité sera finalement corrigée en juillet.
1. Découverte du bug
De par sa localisation et sa portée, l'impact du bug est immense. En effet, le bug est localisé dans le driver win32k.sys, responsable du rendu graphique (Graphics Device Interface ou GDI) et plus précisément dans un mécanisme ancien, datant du noyau NT. Cette faille est restée cachée depuis 1990. Sa découverte est due au fuzzing de la GDI dans des conditions particulières, où la mémoire est saturée. [TAVISO]
Le mécanisme vulnérable est situé dans la gestion des objets graphiques nommés PATH. Le rôle d'un PATH est de décrire une forme graphique, grâce à un ensemble de points, courbes et arcs. En mémoire, notre PATH est représenté par une liste doublement chaînée de tous ses composants (points, courbe, arcs) :
typedef struct _PATHRECORD {
struct _PATHRECORD *pprnext;
struct _PATHRECORD *pprprev;
FLONG flags;
ULONG count;
POINTFIX points[0];
} PATHRECORD, *PPATHRECORD;
Cette structure PATHRECORD peut...
- Accédez à tous les contenus de Connect en illimité
- Découvrez des listes de lecture et des contenus Premium
- Consultez les nouveaux articles en avant-première