Si vous avez suivi les dernières actualités, une faille énorme a été découverte sur la commande sudo inférieure à la version 1.9.5p2.

Cette faille a été identifiée sous le doux nom de CVE-2021-3156, ce n’est pas moins la 3156ème faille recensée de l'année 2021 sur le portail CVE (Common Vulnerabilities and Exposures).

Beaucoup de journaux informatiques en parlent, mais savez-vous réellement quelle est l'origine de cette faille de sécurité béante ?

💣 D'où vient la faille CVE-2021-3156 ?

L'origine de la faille est liée à une mauvaise gestion de l'allocation de la mémoire de la chaine de caractère contenant l'argument de la commande sudo.

La faille n'est pas directement liée à la commande Sudo mais plus précisément à la commande Sudoedit qui possède un comportement légèrement différent de Sudo dans le traitement de son paramètre d'entrée (argc).

L'expert en sécurité s'est rendu compte que Sudo disposait de différents modes de fonctionnement : MODE_EDIT, MODE_SHELL. Dans un certain cas, le caractère '\' est utilisé pour ajouter des paramètres à la ligne de commande passée en paramètre, dans un autre cas, cela ne semble pas être le cas.

Pour autant, si un caractère de ce type est inclus dans la commande alors Sudoedit se trompe dans la taille d'allocation de la mémoire et un buffer overflow se produit tout simplement ...

sudoedit -s '\' `perl -e 'print "A" x 65536'` 
malloc(): corrupted top size 
Aborted (core dumped) 

🔓 Une faille simplement exploitable ?

La faille de sécurité étant facilement exploitable, le nombre d'exploits explose sur le Web, on recense pas moins d'une quarantaine d'exploits disponibles sur GitHub.

L'exploit le plus connu semble est le "Baron Samedit" présenté dans la vidéo de Qualys et qui est disponible sur Exploit Database.

🔥 Quel est le risque pour votre serveur ?

Cette faille ne permet pas à une personne à distante d'attaquer un serveur, mais à une personne ayant des droits d'utilisateurs d'acquérir les droits "root" sur un serveur.

Si vous voulez rentrer plus en profondeur dans l'explication de la faille et le code de Sudoedit qui a permis d'identifier ce buffer overflow, n'hésitez pas à faire un tour sur le blog de Qualys.

N'oubliez pas de mettre à jour dès à présent vos serveurs Linux avec une version de Sudo supérieure ou égal à la version 1.9.5p2 !