“這可能是近期內最需要重視的sudo漏洞?!?/span>
程序員都知道,一句sudo可以“為所欲為”。
而現在,來自Qualys的安全研究人員發現,sudo中存在一個嚴重的漏洞:
任何本地用戶,無需身份驗證(密碼),也能獲得root權限。
也就是說,攻擊者完全可以利用這個漏洞,直接接管主機系統!
什么樣的漏洞
Qualys的研究人員指出,此漏洞是基于堆的緩沖區溢出。
利用這一漏洞,攻擊者無需知道用戶密碼,一樣可以獲得root權限。并且,是在默認配置下。
△攻擊效果
這一漏洞名為CVE-2021-3156(又名Baron Samedit)。Qualys分析認為,漏洞發生的原因在于sudo錯誤地轉義了參數中的反斜杠。
通常,通過shell(sudo -s或sudo -i)運行命令行時,sudo會轉義特殊字符。
但 -s 或 -i 也可能被用來運行sudoedit,在這種情況下,實際上特殊字符沒有被轉義,這就可能導致緩沖區溢出。
利用該漏洞,研究人員在多個Linux發行版上成功獲得了完整的root權限,包括Ubuntu 20.04(sudo 1.8.31)、Debian 10(sudo 1.8.27)和Febora 33(sudo 1.9.2)。
并且,Qualys認為,在這種情況下,sudo支持的其他操作系統和Linux發行版也很容易受到攻擊,并不能排除風險。
漏洞10年前就存在
能讓攻擊者跳過身份驗證,直接獲取root權限,這個漏洞本身的嚴重程度,按理說應該引起大部分用戶和開發者注意。
事實上,這個漏洞2011年7月開始就已經存在,是由8255ed69這個commit引入的。
匪夷所思的是,從2011年7月29日提交到現在,一直沒有人發現、修復由此引發的漏洞。
也就是說,這個漏洞一直存在于sudo1.9.0到1.9.5p1的所有穩定版本,和1.8.2到1.8.31p2的所有舊版本的默認配置中。
按照慣例,在Qualys公布這一漏洞的詳細消息之前,sudo已經正式修復這個漏洞。
所以,升級到sudo的1.9.5p2或是更高版本,就能化解風險。
如何測試你現在使用的sudo版本是否存在漏洞呢?
首先你需要以非root用戶的身份登錄,并運行“sudoedit -s /”命令。
有漏洞的系統會拋出一個以 “sudoedit:”開頭的錯誤,而打過補丁的系統則會顯示一個以 “usage:”開頭的錯誤。
為啥10年未修復?
為什么提交近10年間,這個漏洞都沒人理會呢?
在Hacker News上,有網友給出了推斷:
他認為,包括但不限于sudo這樣的Linux程序的用戶提交聲明,是從來沒有經過測試的。
提交沒有測試的bug聲明,原作者是沒有充足的理由相信bug的真實性,也就無所謂bug是否修復了。
比如去年,有蘋果的安全人員也發現了一個類似的安全漏洞,Linux Mint上的sudo在非默認配置下,也允許用戶跳過身份驗證獲得root權限。
而類似這樣的漏洞補丁,大部分也沒有經過測試,所以,對用戶來說,即使安裝漏洞修復,也還存在漏洞修補不完全,以及引起新漏洞的風險。
還有人說,sudo官方沒有“審稿人”的職能,對于用戶的提交,沒有確定的安全標準,所以也不會有的測試和審核。
普通用戶怎么辦呢?
很遺憾,現在根本沒有一套完美的解決辦法。
面對可能存在的漏洞,你能做的,就是格外留意自己的系統安全,避免不信任的用戶碰到你的電腦。
責任編輯:xj
原文標題:快檢查一下你的 sudo:無需密碼就能獲取 root 權限,還是個 10 年老 bug
文章出處:【微信公眾號:Linux愛好者】歡迎添加關注!文章轉載請注明出處。
-
BUG
+關注
關注
0文章
155瀏覽量
15651 -
root
+關注
關注
1文章
85瀏覽量
21376
原文標題:快檢查一下你的 sudo:無需密碼就能獲取 root 權限,還是個 10 年老 bug
文章出處:【微信號:LinuxHub,微信公眾號:Linux愛好者】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論