SDL(Simple DirectMedia Layer)是一套開放源代碼的跨平臺多媒體開發(fā)庫,提供了數(shù)種控制圖像、聲音、輸出入的函數(shù),讓開發(fā)者只要用相同或是相似的代碼就可以開發(fā)出跨多個平臺(Linux、Windows、Mac OS X等)的應用軟件。
目前,SDL多用于開發(fā)游戲、模擬器、媒體播放器等多媒體應用領域。SDL已被用于開發(fā)了數(shù)百種游戲,包括由Valve制作的游戲以及VLC媒體播放器。
最近,思科Talos團隊的研究人員在SDL中發(fā)現(xiàn)了兩個高危的遠程代碼執(zhí)行漏洞。
研究員Yves Younan發(fā)現(xiàn),SDL受到內(nèi)存損壞漏洞的影響,可以通過使用庫來處理特制文件,之后就能在目標機器上遠程執(zhí)行任意代碼。
Talos團隊表示,攻擊中會用到一個可以觸發(fā)漏洞的XCF文件。 XCF是流行的圖像編輯工具GIMP所使用的格式。
第一個漏洞是一個整數(shù)溢出(CVE-2017-2888)漏洞,可以通過調(diào)用“CreateRGBSurface”函數(shù)創(chuàng)建新的RGB曲線時觸發(fā)。
思科在其咨詢中表示:“傳遞給該函數(shù)的足夠大的寬度和高度值可能會導致乘法運算溢出,從而導致分配的內(nèi)存太少,隨后的內(nèi)存寫入就會超出范圍。”
第二個漏洞是SDL_image映像文件加載庫的XCF屬性處理功能中的一個緩沖區(qū)溢出漏洞(CVE-2017-2887)。
思科說:“這個漏洞是由于從文件中讀取的數(shù)據(jù)和隨后使用的數(shù)據(jù)之間的驗證不足造成。在這種情況下,從XCF鏡像文件中讀取的“id”和“length”屬性值無需驗證就直接被使用,這可能會導致基于堆棧的緩沖區(qū)溢出。”
這些漏洞影響的產(chǎn)品包括SDL 2.0.5和SDL_image 2.0.1。思科表示,在SDL 2.0.6中這兩個漏洞似乎被修復了,但在該版本的發(fā)行說明中并未提及任何安全修復。