眾所周知 有關漏洞的信息 (已編目為 CVE-2023-43641) 在 libcue 庫中,用於分析包含音軌順序和持續時間資訊的元資料。
對於那些不了解 libcue 的人來說,你應該知道它是一個庫 用過的 分析參考表,格式為 描述 CD 上曲目版面的元數據。 備忘單通常與 FLAC 音訊檔案格式結合使用,這意味著 libcue 是某些音訊播放器的依賴項。
值得注意的是,該漏洞的嚴重性是由於該漏洞 允許在處理提示檔時執行程式碼 專門設計的。 此外,libcue 函式庫也用於 GNOME 使用者環境中使用的 tracker-miners 搜尋引擎。
由於追蹤礦工會自動索引 主目錄中的新媒體文件, 攻擊 GNOME 系統和 讓攻擊者的程式碼執行,所需要的只是用戶 只需在以下資料夾之一中添加專門設計的文件即可 ~/Downloads、~/Music 或影片資料夾中的 e,無需打開它(例如,在某些情況下,只需點擊瀏覽器中的連結)。
爬蟲挖礦機的雙進程架構對於漏洞很有用。 首先,在新啟動的進程中預測記憶體佈局比已經運行了幾個小時的進程容易得多,因此 tracker-extract 僅按需啟動這一事實非常方便。
更好的是,tracker-extract 總是創建一個新線程來掃描下載的文件,我發現線程的 malloc 字段中的堆佈局非常一致:它在發行版之間有所不同...
關於漏洞,提到了這一點 是INDEX參數解析程式碼中整數溢位導致的 當此參數中指定了太大的不適合“int”類型的數值時,就會發生這種情況。
舉個簡單的例子:
曲目 01 音訊標題「永遠不會放棄你」... 索引 01 00:00:00 曲目 02 音訊標題「每當您需要某人時」... 索引 01 03:35:00
此漏洞存在於 INDEX 語法的處理中,該漏洞在替換這些語句之一時發生。 這將觸發錯誤:
索引 4294567296 0
若要將字串轉換為數字,請使用 atoi 函數,例如 如果指定數字 4294567296,它將轉換為 -400000。 此漏洞是由於未能檢查結果值以確保其可以為負而直接導致的。 問題的第二部分(這是真正的漏洞)是不檢查 track_set_index 是否 i ≥ 0:
void track_set_index(Track *track, int i, long ind) { if (i > MAXINDEX) { fprintf(stderr, "索引太多\n"); 返回; } track->index[i] = ind;
該漏洞是由於程式碼在atoi轉換後執行操作,其中“i”可以被分配一個負數,用值“ind”覆蓋緩衝區外的記憶體區域,該值也是從正在處理的檔案。
發現漏洞的研究人員提到 他們準備了一個功能漏洞 並展示了利用基於 Ubuntu 23.04 和 Fedora 38 的環境的能力。 漏洞程式碼將在稍後發布 以便用戶有時間安裝消除該漏洞的更新。 此漏洞運作穩定,但需要針對每個發行版進行調整。
在大多數 GNOME 發行版中,追蹤器挖掘器預設為啟用,並作為 Nautilus 檔案管理器(GNOME 檔案)的實體依賴項載入。 據稱,用戶可以直接停用追蹤礦工。 您可以檢查詳細信息,以便能夠在 以下鏈接。
終於 如果您有興趣了解更多信息,您可以在中查看詳細信息 以下鏈接。