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