近日,Google為libwebp安全漏洞分配了一個新的CVE ID(CVE-2023-5129),該漏洞獲得了最高的10.0嚴重性評級,可能造成嚴重後果,如崩潰、任意程式碼執行以及未經授權訪問敏感資訊。
起初,谷歌將此漏洞披露為Chrome漏洞,編號為CVE-2023-4863,涉及WebP中的堆緩衝區溢位,影響的是116.0.5845.187之前的Google Chrome版本。
但Rezillion的一項分析顯示,許多廣泛使用的應用程式、程式碼庫、框架和作業系統都存在CVE-2023-4863漏洞:“該軟體包在尺寸和速度方面表現出色,優於JPEG和PNG。因此,大量軟體、應用程式和包都採用了這個庫,甚至採用了libwebp為其依賴項的包。libwebp的廣泛使用顯著擴大了攻擊面,引起使用者和組織的嚴重擔憂。”
然而,谷歌將CVE-2023-4863錯誤地界定為僅影響Chrome的漏洞,這一決策掩蓋了一個事實——它實際上影響所有依賴libwebp庫處理WebP影像的應用程式,其影響範圍比之前預想的要廣泛。
據瞭解,這個漏洞存在於libwebp用於無失真壓縮的Huffman編碼演算法中,它使攻擊者能夠使用惡意構造的HTML頁面執行越界記憶體寫入:
使用特製的WebP無損檔案,libwebp可能會將資料越界寫入堆。ReadHuffmanCodes()函式透過預先計算的大小陣列kTableSize來分配HuffmanCode緩衝區的大小。color_cache_bits值定義要使用的大小。kTableSize陣列僅考慮8位一級表查詢的大小,而不考慮二級表查詢的大小。libwebp允許使用最多15位的程式碼(MAX_ALLOWED_CODE_LENGTH)。當BuildHuffmanTable()試圖填充二級表時,可能會寫入越界資料。對較小的陣列進行的越界寫入發生在ReplicateValue中。
現如今谷歌已正式將該漏洞認定為libwebp(用於編碼和解碼WebP格式影像的開源庫)的一個漏洞。這一決定具有重要意義,因為業界最初未認識到其作為許多使用libwebp的專案的潛在安全威脅(如1Password、Signal、Safari、Mozilla Firefox、Microsoft Edge、Opera和原生Android網頁瀏覽器)。
編輯:左右裡
資訊來源:thehackernews
轉載請註明出處和本文連結