新的 Linux sudo 漏洞使本地用戶獲得(de) root 權限. 2021-01-28
近日被技(jì)術(shù)專家(jiā)所發現的新 sudo 漏洞允許任何本地用戶在不需要任何身份驗證的情況下就可(kě)以在類 Unix 操作(zuò)系統上(shàng)獲得(de) root 權限。
Sudo 實際上(shàng)就是一個(gè) Unix 程序,它使系統管理(lǐ)員可(kě)以為(wèi) sudoers 文件中列出的普通(tōng)用戶提供有(yǒu)限的 root 權限,與此同時(shí)保留其活動日志(zhì)。Sudo 按照“最小(xiǎo)權限原則”工作(zuò),基于該原則,Sudo 程序僅授予用戶足夠的權限來(lái)完成工作(zuò),而不會(huì)損害系統的整體(tǐ)安全性。
當在類似 Unix 的系統上(shàng)執行(xíng)命令時(shí),普通(tōng)用戶可(kě)以使用 sudo(superuser do)命令來(lái)以超級用戶身份執行(xíng)命令(如果他們具有(yǒu)權限或知道(dào)超級用戶的密碼)—— root 是系統的超級用戶,即一個(gè)特殊的系統管理(lǐ)帳戶。
任何本地用戶的 root 權限
Qualys 的安全研究人(rén)員發現并跟蹤了被命名為(wèi) CVE-2021-3156 的 Sudo 權限升級漏洞。根據 Qualys 研究人(rén)員的發現,此漏洞産生(shēng)的原因是基于任何本地用戶(普通(tōng)用戶和(hé)系統用戶,無論是否在 sudoers 文件中列出)都可(kě)以利用基于堆的緩沖區(qū)溢出而實現的,攻擊者無需知道(dào)用戶密碼即可(kě)成功利用此漏洞。
Sudo 錯誤地在參數(shù)中轉義了反斜杠字符,從而觸發了緩沖溢出,最終導緻任何本地用戶都可(kě)以獲得(de) root 權限。通(tōng)常,在 shell 中(sudo -s 或 sudo -i)運行(xíng)命令時(shí),sudo 都會(huì)轉義特殊的字符。但(dàn)是,在使用 sudoedit -s 或 sudoedit -i 時(shí)實際上(shàng)又沒有(yǒu)進行(xíng)轉義,這使得(de)緩沖區(qū)溢出成為(wèi)了可(kě)能。
利用這些(xiē)漏洞,Qualys 的研究人(rén)員能夠在多(duō)個(gè) Linux 發行(xíng)版上(shàng)獲得(de)完整的 root 權限,研究人(rén)員分别在 Debian 10(Sudo 1.8.27)、Ubuntu 20.04(Sudo 1.8.31)和(hé) Fedora 33(Sudo 1.9.2)上(shàng)重現了 CVE-2021-3156 漏洞。根據 Qualys 的說法,CVE-2021-3156 漏洞在其他 Sudo 所支持的操作(zuò)系統和(hé)發行(xíng)版中同樣存在。
漏洞在對外公開(kāi)前就已修複
該漏洞最早是在 2011 年 7 月由 Sudo 程序引入進系統之中,距今已接近 10 年時(shí)間(jiān)。它會(huì)影(yǐng)響從 1.9.0 到 1.9.5p1 的所有(yǒu)穩定版本,以及從 1.8.2 到 1.8.31p2 的所有(yǒu)舊(jiù)版本的默認配置。
Qualys 于 1 月 13 日就在 Sudo 程序的內(nèi)部社群披露了此漏洞,而今天 Sudo 開(kāi)發者正式推出 sudo 1.9.5p2 版本,并在該版本中修複了漏洞。為(wèi)了防止該漏洞被濫用,因此直到現在 Qualys 才正式對外披露了他們的發現。
要測試你(nǐ)的系統是否受到該漏洞影(yǐng)響,首先必須以非 root 用戶的身份登錄系統并運行(xíng) “*sudoedit -s /“*命令。易受攻擊的系統将引發以 “sudoedit:” 開(kāi)頭的錯誤,而已修補系統将顯示以 “usage:”開(kāi)頭的錯誤。
使用 Sudo 将 root 權限委派給其他用戶的系統管理(lǐ)員應盡快升級到 sudo 1.9.5p2 或更高(gāo)版本。
想要了解更多(duō)詳情, 可(kě)以查看 Qualys 發布的技(jì)術(shù)細節。
轉自OSCHINA