Microsoft découvre des failles dans la bibliothèque ncurses : est-ce grave ?
- par Kenan
- , le 15 septembre 2023
- 17 h 16 min
Un ensemble de failles de corruption de mémoire a été découvert dans la bibliothèque de programmation ncurses (abréviation de new curses). Ces failles pourraient être exploitées par des acteurs menaçants pour exécuter un code malveillant sur des systèmes Linux et macOS vulnérables.
« En utilisant l’empoisonnement des variables d’environnement, les attaquants pourraient enchaîner ces vulnérabilités pour élever les privilèges et exécuter du code dans le contexte du programme ciblé ou effectuer d’autres actions malveillantes », ont déclaré les chercheurs de Microsoft Threat Intelligence Jonathan Bar Or, Emanuele Cozzi et Michael Pearse dans un rapport technique publié aujourd’hui.
Les vulnérabilités, regroupées sous le nom de CVE-2023-29491 (score CVSS de 7,8), ont été corrigées en avril 2023. Microsoft a déclaré avoir également travaillé avec Apple pour résoudre les problèmes spécifiques à macOS liés à ces failles.
Les variables d’environnement sont des valeurs définies par l’utilisateur qui peuvent être utilisées par plusieurs programmes sur un système et peuvent affecter la manière dont ils se comportent sur le système. La manipulation de ces variables peut amener les applications à effectuer des opérations non autorisées.
L’audit de code et le fuzzing de Microsoft ont révélé que la bibliothèque ncurses recherche plusieurs variables d’environnement, dont TERMINFO, qui pourraient être empoisonnées et combinées avec les failles identifiées pour parvenir à une escalade des privilèges. Terminfo est une base de données qui permet aux programmes d’utiliser les terminaux d’affichage de manière indépendante.
Les failles concernent une fuite d’informations sur la pile, une confusion de type de chaîne paramétrée, une erreur de type « off-by-one », un dépassement du tas pendant l’analyse du fichier de la base de données Terminfo, et un déni de service avec des chaînes de caractères annulées.
« Les vulnérabilités découvertes auraient pu être exploitées par des attaquants pour élever les privilèges et exécuter du code dans le contexte d’un programme ciblé », ont déclaré les chercheurs. « Néanmoins, prendre le contrôle d’un programme en exploitant les vulnérabilités de corruption de la mémoire nécessite une attaque en plusieurs étapes.
« Les vulnérabilités peuvent avoir dû être enchaînées pour qu’un attaquant puisse élever ses privilèges, par exemple en exploitant la fuite d’informations de la pile pour obtenir des primitives de lecture arbitraires, ainsi qu’en exploitant le débordement du tas pour obtenir une primitive d’écriture. »