Vulnérabilité dans e2fsck lors du traitement de répertoires spécialement conçus

Dans l'utilitaire e2fsck fourni dans le package e2fsprogs, identifié vulnérabilité (CVE-2019-5188), qui permet d'exécuter le code d'un attaquant lors de la vérification d'un système de fichiers contenant des répertoires spécialement conçus. La vulnérabilité a été confirmée dans les versions 1.43.3 à 1.45.4. Vulnérabilité corrigée dans la mise à jour e2fsck 1.45.5. Dans les kits de distribution, le problème reste toujours non corrigé (Debian, Arch Linux, SUSE / openSUSE, Ubuntu, RHEL).

La vulnérabilité est causée par une erreur dans la fonction mutate_name() du fichier rehash.c, qui est utilisée lors de la reconstruction des tables de hachage associées à un répertoire, garantissant que tous les fichiers du répertoire correspondent au répertoire. La corruption de la structure hash_entry associée à un répertoire pourrait amener un attaquant à écrire des données dans une zone en dehors du tampon alloué. Si plusieurs fichiers portant le même nom sont identifiés dans la table de hachage comme étant liés à un répertoire, l'utilitaire e2fsck renomme les fichiers en double en ajoutant ~0, ~1, etc. au nom. Pour stocker temporairement le nouveau nom lors d'un tel changement de nom, un tampon d'une taille de 256 octets est alloué sur la pile.

La taille des données à copier est déterminée par l'expression "entry->name_len & 0xff", mais la valeur de Entry->name_len est chargée à partir d'une structure sur le disque plutôt que calculée à partir de la taille réelle du nom. Si la taille est nulle, alors l'index du tableau prend la valeur -1 et des conditions sont créées pour un dépassement d'entier à travers la limite inférieure du tampon (sous-débordement d'entier) et l'écrasement d'autres données sur la pile avec la valeur « ~0 ». Pour les systèmes 64 bits, l'exploitation de la vulnérabilité est jugée peu probable et ne nécessite aucune restriction sur la taille de la pile (ulimit -s unlimited). Pour les systèmes 32 bits, l'exploitation est considérée comme possible, mais le résultat dépend fortement de la manière dont l'exécutable a été compilé par le compilateur.

Pour mener une attaque, un attaquant doit corrompre les données d'une certaine manière dans la partition avec le système de fichiers ext2, ext3 ou ext4. Étant donné que cette opération nécessite des privilèges de superutilisateur, la vulnérabilité constitue une menace lorsque l'utilitaire e2fsck analyse les disques externes ou les images FS reçues en externe.

Source: opennet.ru

Ajouter un commentaire