不用密碼就能獲取root權限?Sudo被曝新漏洞

“新的漏洞通告發(fā)了!快喊運維去打補丁。”
運維:
雖然運維慘兮兮,但“這可能是近期內最需要重視的sudo漏洞。”因為這次的Sudo漏洞CVE-2021-3156能夠允許任何本地用戶不需要身份驗證就可以獲得root權限。
任何本地用戶都可以獲取root權限
Sudo是一個Unix程序,可以讓系統(tǒng)管理員為sudoers文件中列出的普通用戶提供有限的root權限,同時保留其活動日志。它按照“最小特權原則”工作,在該原則下,該程序僅授予人們足夠完成工作的權限,而不會損害系統(tǒng)的整體安全。
當在類似Unix的OS上執(zhí)行命令時,非特權用戶如果具有權限或知道超級用戶的密碼,就可以使用sudo命令來執(zhí)行root權限命令。通過將sudoers配置文件包括在內,還可以將Sudo設置為允許普通用戶像其他任何超級用戶一樣運行命令。
Qualys的安全研究人員發(fā)現了名為“Baron Samedit”(CVE-2021-3156)的Sudo提權漏洞,該漏洞研究人員于1月13日披露了此漏洞,并確保在公開發(fā)現內容之前先發(fā)布補丁程序。
Qualys研究人員認為,此問題是任何本地用戶(普通用戶和系統(tǒng)用戶,無論是否在sudoers文件中列出)都可以利用基于堆的緩沖區(qū)溢出,攻擊者無需知道用戶密碼即可獲得root權限。
Sudo錯誤地轉義了參數中反斜杠,從而導致緩沖區(qū)溢出。
1.9.5p2更改日志顯示:“通常,通過外殼(sudo -s或sudo -i)運行命令時,sudo會轉義特殊字符。”“但是,也可以使用-s或-i標志運行sudoedit,在這種情況下,實際上并沒有進行轉義,這使得緩沖區(qū)溢出成為可能。”
Qualys針對CVE-2021-3156漏洞進行了三次測試,以展示潛在的攻擊者如何成功利用此漏洞。使用這些漏洞,研究人員能夠在多個Linux發(fā)行版上獲得完整的root權限,包括Debian 10(Sudo 1.8.27),Ubuntu 20.04(Sudo 1.8.31)和Fedora 33(Sudo 1.9.2)。
根據Qualys的說法,攻擊者在Sudo支持的其他操作系統(tǒng)和發(fā)行版也可能利用該漏洞。
Qualys在周二發(fā)布的CVE-2021-3156安全公告中提供了有關如何利用CVE-2021-3156的更多技術細節(jié)。
漏洞在被披露前已修復
該漏洞是9年前(2011年7月)在Sudo程序中引入的,提交為8255ed69。
影響版本包含:
- sudo:sudo: 1.8.2 - 1.8.31p2
- sudo:sudo: 1.9.0 - 1.9.5p1
Sudo貢獻者在今天早些時候發(fā)布的sudo 1.9.5p2版本中已修復了漏洞,與此同時Qualys公開了他們的發(fā)現。
要測試系統(tǒng)是否易受攻擊,必須以非root用戶身份登錄并運行“ sudoedit -s / ”命令。易受攻擊的系統(tǒng)將引發(fā)以“ sudoedit:”開頭的錯誤提示,而已修補系統(tǒng)將顯示以“ usage:”開頭的錯誤提示。
建議
使用Sudo且將root權限委派給其用戶的系統(tǒng)管理員應立即升級到sudo 1.9.5p2或更高版本。
在2019年,另一個Sudo漏洞(漏洞名稱為 CVE-2019-14287 )允許無特權的用戶以root身份執(zhí)行命令。
幸運的是,該缺陷只能在非標準配置中利用,這意味著大多數運行易受攻擊的Sudo版本的系統(tǒng)都不會受到影響。
參考來源:New Linux SUDO flaw lets local users gain root privileges