Vulnérabilité dans le module ksmbd du noyau Linux qui permet d'exécuter votre code à distance

Une vulnérabilité critique a été identifiée dans le module ksmbd, qui inclut une implémentation d'un serveur de fichiers basé sur le protocole SMB intégré au noyau Linux, qui permet l'exécution de code à distance avec les droits du noyau. L'attaque peut être réalisée sans authentification, il suffit que le module ksmbd soit activé sur le système. Le problème est manifeste depuis le noyau 5.15, publié en novembre 2021, et a été discrètement résolu dans les mises à jour 5.15.61, 5.18.18 et 5.19.2, créées en août 2022. Étant donné que le problème n'a pas encore reçu d'identifiant CVE, il n'y a pas encore d'informations exactes sur la résolution du problème dans les distributions.

Les détails sur l'exploitation de la vulnérabilité n'ont pas encore été divulgués, on sait seulement que la vulnérabilité est causée par l'accès à une zone mémoire déjà libérée (Use-After-Free) en raison de l'absence de vérification de l'existence d'un objet avant d'effectuer des opérations. avec ça. Le problème est lié au fait que dans la fonction smb2_tree_disconnect(), la mémoire allouée à la structure ksmbd_tree_connect était libérée, mais après cela il restait encore un pointeur utilisé lors du traitement de certaines requêtes externes contenant des commandes SMB2_TREE_DISCONNECT.

En plus de la vulnérabilité mentionnée dans ksmbd, 4 problèmes moins dangereux sont également corrigés :

  • ZDI-22-1688 - exécution de code à distance avec les droits du noyau en raison de l'absence de vérification de la taille réelle des données externes dans le code de traitement des attributs de fichier avant de les copier dans le tampon alloué. Le danger de la vulnérabilité est atténué par le fait que l'attaque ne peut être effectuée que par un utilisateur authentifié.
  • ZDI-22-1691 - fuite d'informations à distance de la mémoire du noyau en raison d'une vérification incorrecte des paramètres d'entrée dans le gestionnaire de commandes SMB2_WRITE (l'attaque ne peut être effectuée que par un utilisateur authentifié).
  • ZDI-22-1687 - déni de service à distance par épuisement de la mémoire disponible dans le système en raison d'une libération incorrecte des ressources dans le gestionnaire de commandes SMB2_NEGOTIATE (l'attaque peut être effectuée sans authentification).
  • ZDI-22-1689 - appel à distance pour planter le noyau en raison du manque de vérification appropriée des paramètres de la commande SMB2_TREE_CONNECT, conduisant à une lecture depuis une zone hors tampon (l'attaque ne peut être effectuée que par un utilisateur authentifié ).

La prise en charge de l'exécution d'un serveur SMB à l'aide du module ksmbd est incluse dans le package Samba depuis la version 4.16.0. Contrairement à un serveur SMB en espace utilisateur, ksmbd est plus efficace en termes de performances, de consommation de mémoire et d'intégration avec les fonctionnalités avancées du noyau. Ksmbd est présenté comme une extension hautes performances de Samba, prête à être intégrée, s'intégrant aux outils et bibliothèques Samba selon les besoins. Le code ksmbd a été écrit par Namjae Jeon de Samsung et Hyunchul Lee de LG, et maintenu dans le noyau par Steve French de Microsoft, responsable des sous-systèmes CIFS/SMB2/SMB3 dans le noyau Linux et membre de longue date de l'équipe de développement Samba, qui a contribué de manière significative à la mise en œuvre du support des protocoles SMB/CIFS dans Samba et Linux.

Source: opennet.ru

Ajouter un commentaire