曲速未來(lái) 披露|snprintf的問(wèn)題:Icecast中的漏洞區(qū)塊鏈

                  區(qū)塊鏈安全檔案 2018-11-06 22:12
                  分享到:
                  導(dǎo)讀

                  曲速未來(lái):Icecast流媒體服務(wù)器發(fā)現(xiàn)了一個(gè)遠(yuǎn)程代碼執(zhí)行漏洞。

                          區(qū)塊鏈安全咨詢(xún)公司 曲速未來(lái) 消息:有安全人員發(fā)現(xiàn)了由Xiph.org基金會(huì)維護(hù)的開(kāi)源流媒體服務(wù)器Icecast中的一個(gè)漏洞。攻擊者可以制作HTTP標(biāo)頭,覆蓋服務(wù)器的堆棧內(nèi)容,從而導(dǎo)致遠(yuǎn)程代碼執(zhí)行。由于Icecast通常用于托管互聯(lián)網(wǎng)廣播電臺(tái),因此有動(dòng)力的攻擊者可能會(huì)將電臺(tái)停播。已為此漏洞分配標(biāo)識(shí)符CVE-2018-18820。

                  snprintf:一個(gè)更安全的sprintf版本

                  在這一點(diǎn)上,眾所周知,它sprintf是不安全的,因?yàn)樗惶峁┚彌_區(qū)溢出保護(hù)。這是不尋常地看到,用戶(hù)指向的文件snprintf作為一個(gè)更安全的版本,因?yàn)槿绻彌_區(qū)太小,它將截?cái)噍敵?。但人們通常沒(méi)有意識(shí)到的是,當(dāng)它截?cái)鄷r(shí),snprintf不會(huì)返回它寫(xiě)入的字節(jié)數(shù)。實(shí)際上,如果輸出緩沖區(qū)足夠大,它將返回它將寫(xiě)入的字節(jié)數(shù)。更糟糕的是,如果提供的大小參數(shù)大于緩沖區(qū)的實(shí)際大小,它無(wú)法阻止緩沖區(qū)溢出。

                  這是來(lái)自Icecast的易受攻擊的代碼,它從用戶(hù)請(qǐng)求循環(huán)HTTP頭并將它們復(fù)制到緩沖區(qū),構(gòu)建POST請(qǐng)求的主體以發(fā)送到身份驗(yàn)證服務(wù)器:

                  這段代碼的略微簡(jiǎn)化版本:

                  如果考慮一個(gè)sizeof(post)10的情況,并且已經(jīng)寫(xiě)入了8個(gè)字節(jié)(即,post_offset是8)。當(dāng)要復(fù)制的下一個(gè)標(biāo)題是什么時(shí)會(huì)發(fā)生什么"baz"?

                  輸出被截?cái)啵玴ost_offset增加超出緩沖區(qū)的末尾:

                  現(xiàn)在如果假設(shè)有另一個(gè)要復(fù)制的標(biāo)題,包含內(nèi)容"AAAAA..."。就會(huì)處于一個(gè)有趣的位置:大小參數(shù)snprintf是sizeof(post) - post_offset,它將下溢成為一個(gè)非常大的數(shù)字。結(jié)果是后續(xù)調(diào)用snprintf可以有效地寫(xiě)入他們想要的數(shù)據(jù)。該數(shù)據(jù)將被寫(xiě)入緩沖區(qū)post post_offset末尾的某個(gè)地方post,并將覆蓋堆棧的其他內(nèi)容。

                  這意味著是可以發(fā)送一個(gè)將被截?cái)嗟拈L(zhǎng)HTTP標(biāo)頭,但其長(zhǎng)度將允許post_offset在選擇的堆棧中的任何位置。然后就可以發(fā)送第二個(gè)HTTP標(biāo)頭,其內(nèi)容將被寫(xiě)入該位置。

                  攻擊者的一個(gè)難點(diǎn)是在復(fù)制之前執(zhí)行標(biāo)題的一些清理snprintf,因此它們?cè)诳梢詫?xiě)入堆棧的數(shù)據(jù)方面受到一定限制。這個(gè)概念驗(yàn)證漏洞只會(huì)導(dǎo)致服務(wù)器進(jìn)程中的段錯(cuò)誤 - 實(shí)際上是拒絕服務(wù)攻擊 - 但是有懷疑一個(gè)充滿(mǎn)動(dòng)力和聰明的攻擊者能夠升級(jí)此攻擊以實(shí)現(xiàn)全面的遠(yuǎn)程代碼執(zhí)行。

                  修復(fù)

                  區(qū)塊鏈安全咨詢(xún)公司 曲速未來(lái) 表示:Xiph的安全人員很快修補(bǔ)了這個(gè)bug,雖然修復(fù)非常簡(jiǎn)單。它只是檢查來(lái)自的返回值snprintf,如果它導(dǎo)致post_offset超出緩沖區(qū)的末尾,它會(huì)記錄一個(gè)錯(cuò)誤并退出循環(huán)。

                  本文內(nèi)容由 曲速未來(lái) (WarpFuture.com) 安全咨詢(xún)公司整理編譯,轉(zhuǎn)載請(qǐng)注明。 曲速未來(lái)提供包括主鏈安全、交易所安全、交易所錢(qián)包安全、DAPP開(kāi)發(fā)安全、智能合約開(kāi)發(fā)安全等相關(guān)區(qū)塊鏈安全咨詢(xún)服務(wù)。

                  安全 緩沖區(qū) snprintf post_offset 內(nèi)容
                  分享到:

                  1.TMT觀察網(wǎng)遵循行業(yè)規(guī)范,任何轉(zhuǎn)載的稿件都會(huì)明確標(biāo)注作者和來(lái)源;
                  2.TMT觀察網(wǎng)的原創(chuàng)文章,請(qǐng)轉(zhuǎn)載時(shí)務(wù)必注明文章作者和"來(lái)源:TMT觀察網(wǎng)",不尊重原創(chuàng)的行為T(mén)MT觀察網(wǎng)或?qū)⒆肪控?zé)任;
                  3.作者投稿可能會(huì)經(jīng)TMT觀察網(wǎng)編輯修改或補(bǔ)充。