Une vulnrabilit du noyau Linux avec un score CVSS de 10 a t dcouverte dans le serveur SMB, donnant un utilisateur non authentifi la possibilit d’excuter le code distance. Elle permet l’execution d’un code arbitraire sur les installations affectes. L’authentification n’est pas ncessaire pour exploiter cette vulnrabilit, mais seuls les systmes avec ksmbd activ sont vulnrables. La faille spcifique existe dans le traitement des commandes SMB2_TREE_DISCONNECT. Le problme rsulte de l’absence de validation de l’existence d’un objet avant d’effectuer des oprations sur cet objet. Un attaquant peut tirer parti de cette vulnrabilit pour excuter du code dans le contexte du noyau. Linux a publi une mise jour pour corriger cette vulnrabilit.
Le systme CVSS (Common Vulnerability Scoring System), norme publie utilise par des organisations du monde entier, permet de saisir les principales caractristiques d’une vulnrabilit et de produire un score numrique refltant sa gravit. Ce score numrique peut ensuite tre traduit en une reprsentation qualitative (telle que faible, moyenne, leve et critique) afin d’aider les organisations valuer et hirarchiser correctement leurs processus de gestion des vulnrabilits.
Le CVSS se compose de trois groupes de mesures : Base, Temporel, et Environnemental. Les mtriques de base produisent un score allant de 0 10, qui peut ensuite tre modifi en notant les mtriques temporelles et environnementales. Alors, un score de 10 n’est pas du tout rassurant.
Lorsque le dmon serveur est lanc, il dmarre un thread forker (ksmbd/nom d’interface) au moment de l’initialisation et ouvre un port ddi 445 pour couter les demandes SMB. Chaque fois que de nouveaux clients font une demande, le thread forker accepte la connexion du client et cre un nouveau thread pour un canal de communication ddi entre le client et le serveur. Cela permet de traiter en parallle les demandes SMB (commandes) des clients et de permettre aux nouveaux clients d’tablir de nouvelles connexions.
Selon le type de demande SMB, chaque nouveau thread peut dcider de passer les commandes l’espace utilisateur (ksmbd.mountd), actuellement les commandes DCE/RPC sont identifies pour tre traites par l’espace utilisateur. Pour mieux utiliser le noyau linux, il a t choisi de traiter les commandes en tant que workitems et de les excuter dans les handlers des threads ksmbd-io kworker. Cela permet de multiplexer les gestionnaires car le noyau se charge d’initier des threads de travail supplmentaires si la charge augmente et vice versa, si la charge diminue, il dtruit les threads de travail supplmentaires.
Ainsi, aprs que la connexion soit tablie avec le client. Le ksmbd ddi/1..n(numro de port) prend en charge la rception/le traitement des commandes SMB. Chaque commande reue est traite en parallle, c’est–dire qu’il peut y avoir plusieurs commandes de clients qui sont traites en parallle. Aprs avoir reu chaque commande, un workitemspar du noyau est prpar pour chaque commande qui est ensuite mise en file d’attente pour tre traite par les kworkers ksmbd-io. Ainsi, chaque workitem SMB est mis en file d’attente vers les kworkers. Cela permet de bnficier d’une gestion optimale de la rpartition de la charge par le noyau et d’optimiser les performances du client en traitant les commandes du client en parallle.
ksmbd a dclench des signaux d’alarme chez certains utilisateurs qui discutaient de sa fusion l’anne dernire. SerNet, une socit informatique allemande qui propose sa propre version de Samba, a dclar dans un billet de blog que ksmbd tait impressionnant, mais qu’il semblait quelque peu immature. En outre, l’quipe Samba+ de SerNet a dclar dans un billet de blog que la valeur de l’ajout d’un serveur SMB l’espace noyau ne valait peut-tre pas le risque de tirer le dernier morceau de performance du matriel disponible.
Dveloppe par Samsung pour mettre en uvre SMB3 ct serveur avec des performances optimises et une empreinte plus petite, la vulnrabilit de ksmbd pourrait conduire une fuite de la mmoire d’un serveur SMB par un attaquant, similaire l’attaque Heartbleed.
Heureusement, si vous n’excutez pas le module ksmbd exprimental de Samsung, comme l’a dcrit le chercheur en scurit Shir Tamari sur Twitter, et que vous avez conserv Samba, vous tes parfaitement protg. ksmbd est nouveau ; la plupart des utilisateurs utilisent toujours Samba et ne sont pas affects. En gros, si vous n’excutez pas de serveurs SMB avec ksmbd, profitez de votre week-end , a dclar Tamari sur Twitter.
Selon la Zero-Day Initiative, qui a divulgu la vulnrabilit de ksmbd, la faille use-after-free existe dans le traitement des commandes SMB2_TREE_DISCONNECT. Selon ZDI, le problme est d au fait que ksmbd ne valide pas l’existence des objets avant d’effectuer des oprations sur ceux-ci. Linux a publi une mise jour pour corriger cette vulnrabilit. Elle galement quelques autres problmes dans ksmbd : une lecture hors limites pour SMB2_TREE_CONNECT, qui, selon la note de correction, pourrait permettre des demandes invalides de ne pas valider les messages, et une fuite de mmoire dans smb2_handle_negotiate entranant une libration incorrecte de la mmoire.
Source: Zero day initiative
Et vous ?
Quel est votre avis sur le sujet ?
Voir aussi :