Ils ont détecté une vulnérabilité dans le pilote Linux exFAT 

vulnérabilité

Si elles sont exploitées, ces failles peuvent permettre aux attaquants d'obtenir un accès non autorisé à des informations sensibles ou de causer des problèmes en général.

Il y a quelques jours, la nouvelle a éclaté que une vulnérabilité a été détectée (déjà répertorié sous CVE-2023-4273) dans le pilote du système de fichiers exFAT fourni dans le noyau Linux.

Le problèmea réside dans le fait que le contrôleur permet lors du montage d'une cloison spécialement conçue, (par exemple, en branchant une clé USB malveillante), rencontrez un débordement de pile et exécutez votre code avec les droits du noyau.

Le problème est le suivant : le code suppose que les entrées de nom de fichier produisent toujours un nom de fichier concaténé qui contient 255 caractères (la limite est de 258 caractères, comprend 1 caractère supplémentaire pour un octet nul et 2 caractères supplémentaires pour la conversion). Le stockage de plus de 255 caractères de nom de fichier dans un ensemble d'entrées de répertoire est une violation du format du système de fichiers, mais est accepté par le pilote Linux, mais provoque également un débordement de pile (car le nom de fichier est concaténé dans une variable allouée par la pile).

Concernant la vulnérabilité, il est mentionné que, ceci ets exploité en raison d'un échec de vérification de la taille la copie d'un nom de fichier dans un tampon alloué par la pile entraîne un débordement de pile du noyau si un nom de fichier très long est fourni et dépasse la limite du système de fichiers de 255 caractères.

La fonction exfat_extract_uni_name() arrête de copier les caractères dans le tampon de destination une fois qu'un caractère nul (0x0000) est rencontré et renvoie le nombre de caractères copiés. Mais l'appelant ignore la valeur de retour et avance le pointeur de 15 caractères (30 octets) pour l'itération suivante. Par conséquent, il est possible de sauter (laisser intact) 14 caractères ou 28 octets en une seule itération. 

Vulnérabilité est présent dans une fonction qui effectue une reconstruction de nom long lire cycliquement les enregistrements avec des parties de nom de fichier à partir de l'index du répertoire et fusionner les parties de nom résultantes dans le nom long final.

La vérification de la taille dans le code de cette fonction a été effectuée par rapport à chaque entrée comportant une partie de nom, mais n'a pas couvert le nom final (par exemple, le nom peut être divisé en 100 parties et atteindre 1500 258 caractères au lieu de XNUMX caractères dans le tampon ).

L'enquêteur qui a découvert la vulnérabilité a pu préparer un prototype d'exploit ce qui vous permet d'augmenter vos privilèges sur le système. Lorsqu'il est testé sur une machine virtuelle VirtualBox, l'exploit fonctionne 100 % du temps, mais lorsqu'il est exécuté dans un environnement normal fonctionnant sur du matériel, les chances qu'il soit déclenché tombent à environ 50 %.

En particulier, mon exploit écrase un pointeur alloué par la pile vers une chaîne terminée par un caractère nul, de sorte que la tentative suivante d'ajouter un caractère nul de fin à cette chaîne devient en fait la primitive "écrire un octet nul dans l'emplacement de mémoire choisi par l'attaquant.

Il est également mentionné que la vulnérabilité pourrait être utilisée pour compromettre les noyaux démarrés en mode UEFI Secure Boot, puisqu'il mentionne qu'une image contenant un noyau vulnérable, avec un script d'initialisation correspondant (et l'exploit, bien sûr), qui démarre avant un vrai système d'exploitation, est placée sur un lecteur bootable. Au démarrage, cette image charge un module de noyau malveillant (et non signé), qui établit son contrôle sur le mode noyau puis passe au système d'exploitation réel (par exemple, en utilisant l'appel kexec).

Enfin, il convient de mentionner que le problème a été résolu dans les versions de Linux toujours prises en charge. Au moment de la divulgation de la vulnérabilité, la version la plus récente du noyau Linux était la version Linux 6.4.10, mais la nouvelle version 6.5 contient déjà le correctif.

Pour ceux qui souhaitent suivre la solution dans les différentes distributions, ils peuvent le faire à partir des pages suivantes : DebianUbuntu, RHELSUSE Feutre.

Si vous intéressé à en savoir plus, vous pouvez vérifier les détails dans le lien suivant


Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont marqués avec *

*

*

  1. Responsable des données : AB Internet Networks 2008 SL
  2. Finalité des données: Contrôle du SPAM, gestion des commentaires.
  3. Légitimation: votre consentement
  4. Communication des données: Les données ne seront pas communiquées à des tiers sauf obligation légale.
  5. Stockage des données: base de données hébergée par Occentus Networks (EU)
  6. Droits: à tout moment, vous pouvez limiter, récupérer et supprimer vos informations.