快檢查一下你的sudo:無(wú)需密碼就能獲取root權(quán)限,還是個(gè)10年老bug
賈浩楠 魚羊 發(fā)自 凹非寺
量子位 報(bào)道 | 公眾號(hào) QbitAI
“這可能是近期內(nèi)最需要重視的sudo漏洞?!?/p>
程序員都知道,一句sudo可以“為所欲為”。

而現(xiàn)在,來(lái)自Qualys的安全研究人員發(fā)現(xiàn),sudo中存在一個(gè)嚴(yán)重的漏洞:
任何本地用戶,無(wú)需身份驗(yàn)證(密碼),也能獲得root權(quán)限。
也就是說(shuō),攻擊者完全可以利用這個(gè)漏洞,直接接管主機(jī)系統(tǒng)!
什么樣的漏洞
Qualys的研究人員指出,此漏洞是基于堆的緩沖區(qū)溢出。
利用這一漏洞,攻擊者無(wú)需知道用戶密碼,一樣可以獲得root權(quán)限。并且,是在默認(rèn)配置下。

△攻擊效果
這一漏洞名為CVE-2021-3156(又名Baron Samedit)。Qualys分析認(rèn)為,漏洞發(fā)生的原因在于sudo錯(cuò)誤地轉(zhuǎn)義了參數(shù)中的反斜杠。
通常,通過(guò)shell(sudo -s或sudo -i)運(yùn)行命令行時(shí),sudo會(huì)轉(zhuǎn)義特殊字符。
但 -s 或 -i 也可能被用來(lái)運(yùn)行sudoedit,在這種情況下,實(shí)際上特殊字符沒(méi)有被轉(zhuǎn)義,這就可能導(dǎo)致緩沖區(qū)溢出。
利用該漏洞,研究人員在多個(gè)Linux發(fā)行版上成功獲得了完整的root權(quán)限,包括Ubuntu 20.04(sudo 1.8.31)、Debian 10(sudo 1.8.27)和Fedora 33(sudo 1.9.2)。
并且,Qualys認(rèn)為,在這種情況下,sudo支持的其他操作系統(tǒng)和Linux發(fā)行版也很容易受到攻擊,并不能排除風(fēng)險(xiǎn)。
漏洞10年前就存在
能讓攻擊者跳過(guò)身份驗(yàn)證,直接獲取root權(quán)限,這個(gè)漏洞本身的嚴(yán)重程度,按理說(shuō)應(yīng)該引起大部分用戶和開發(fā)者注意。
事實(shí)上,這個(gè)漏洞2011年7月開始就已經(jīng)存在,是由8255ed69這個(gè)commit引入的。

匪夷所思的是,從2011年7月29日提交到現(xiàn)在,一直沒(méi)有人發(fā)現(xiàn)、修復(fù)由此引發(fā)的漏洞。
也就是說(shuō),這個(gè)漏洞一直存在于sudo1.9.0到1.9.5p1的所有穩(wěn)定版本,和1.8.2到1.8.31p2的所有舊版本的默認(rèn)配置中。
按照慣例,在Qualys公布這一漏洞的詳細(xì)消息之前,sudo已經(jīng)正式修復(fù)這個(gè)漏洞。
所以,升級(jí)到sudo的1.9.5p2或是更高版本,就能化解風(fēng)險(xiǎn)。
如何測(cè)試你現(xiàn)在使用的sudo版本是否存在漏洞呢?
首先你需要以非root用戶的身份登錄,并運(yùn)行“sudoedit -s /”命令。
有漏洞的系統(tǒng)會(huì)拋出一個(gè)以 “sudoedit: ”開頭的錯(cuò)誤,而打過(guò)補(bǔ)丁的系統(tǒng)則會(huì)顯示一個(gè)以 “usage:”開頭的錯(cuò)誤。
為啥10年未修復(fù)?
為什么提交近10年間,這個(gè)漏洞都沒(méi)人理會(huì)呢?
在Hacker News上,有網(wǎng)友給出了推斷:

他認(rèn)為,包括但不限于sudo這樣的Linux程序的用戶提交聲明,是從來(lái)沒(méi)有經(jīng)過(guò)測(cè)試的。
提交沒(méi)有測(cè)試的bug聲明,原作者是沒(méi)有充足的理由相信bug的真實(shí)性,也就無(wú)所謂bug是否修復(fù)了。
比如去年,有蘋果的安全人員也發(fā)現(xiàn)了一個(gè)類似的安全漏洞,Linux Mint上的sudo在非默認(rèn)配置下,也允許用戶跳過(guò)身份驗(yàn)證獲得root權(quán)限。

而類似這樣的漏洞補(bǔ)丁,大部分也沒(méi)有經(jīng)過(guò)測(cè)試,所以,對(duì)用戶來(lái)說(shuō),即使安裝漏洞修復(fù),也還存在漏洞修補(bǔ)不完全,以及引起新漏洞的風(fēng)險(xiǎn)。
還有人說(shuō),sudo官方?jīng)]有“審稿人”的職能,對(duì)于用戶的提交,沒(méi)有確定的安全標(biāo)準(zhǔn),所以也不會(huì)有的測(cè)試和審核。

普通用戶怎么辦呢?
很遺憾,現(xiàn)在根本沒(méi)有一套完美的解決辦法。
面對(duì)可能存在的漏洞,你能做的,就是格外留意自己的系統(tǒng)安全,避免不信任的用戶碰到你的電腦。
參考鏈接:
https://www.theregister.com/2021/01/26/qualys_sudo_bug/
https://news.ycombinator.com/item?id=25919235
https://bit.ly/36hvlal
菜鳥編程大本營(yíng),現(xiàn)已正式上線!
接下來(lái)我們將會(huì)在該公眾號(hào)上,專注為大家分享Python,Java,Go,前端開發(fā)等優(yōu)質(zhì)的學(xué)習(xí)資源和技術(shù),分享一些程序員圈的新鮮趣事。
爆款文案
關(guān)注菜鳥編程本營(yíng),從菜鳥進(jìn)階高手
點(diǎn)這里,獲取新手福利


