XZ Utils 5.8.1 軟體包已經發布,其中包括 liblzma 庫和用於處理「.xz」格式壓縮資料的實用程式。 XZ Utils 5.8.1 是發現透過 sshd 組織登入的後門事件後發布的第一個主要版本。上週,Git 中創建了一個 5.8.0 標籤,但由於該標籤發布後發現的效能問題以及與舊版本 GNU make 的兼容性,因此並未正式宣布發布。
XZ Utils 5.8.1 更新修復了一個漏洞(CVE-2025-31115),該漏洞可能導致在嘗試解壓特製的檔案時崩潰。該漏洞是由於存取已經釋放的記憶體區域(釋放後使用)所導致的。攻擊者可以將其值寫入透過「空指標 + 偏移量」計算的位址。這個問題被認為是一個無意的錯誤,因為導致該問題的更改是在開發人員 Jia Tan 到來之前很久對程式碼進行的,而 Jia Tan 的活動導致了後門的引入。
該問題自 XZ Utils 5.3.3alpha 版本起就存在,在多執行緒模式下解碼時會出現此問題(單執行緒解碼器不受影響)。除了 xz 套件中的內建工具外,使用 liblzma 庫中 lzma_stream_decoder_mt 函數的第三方程式也會受到此漏洞的影響。該漏洞已在 XZ Utils 5.8.1 版本中修復,並已向後移植到穩定的 5.4 和 5.6 分支。您可以在以下頁面追蹤您的發行版的更新: Debian, UbuntuRHEL、SUSE/openSUSE、Fedora、Arch、FreeBSD 等作業系統皆不支援此功能。作為一種變通方法,您可以在執行 xz 時使用“--decompress --threads=1”選項或使用 xzdec 工具來停用多執行緒模式下的檔案解碼。
在 XZ Utils 5.8 分支的功能變化中,我們可以注意到:
- LZMA/LZMA2 解碼器已更新,支援在 2 位元和 32 位元 x64 系統上使用 SSE86 指令而不是 memcpy()。這項變更使使用 Glibc 建置時解碼時間減少了多達 5%,而使用 musl 建置時解碼具有非常高壓縮等級的檔案時解碼時間減少了多達 15%。
- liblzma 提高了 64 位元 PowerPC 和 RISC-V 系統上的編碼速度。
- 為 RISC-V、ARM64 和 x86 系統的 lzma/bcj.h 新增了低階 BCJ 過濾器 API(分支/呼叫/跳轉)。
- 重寫了 x86、x86-64 和 E2K 系統的 CLMUL CRC 計算程式碼。
- 在採用LoongArch處理器的平台上,啟用指令加速CRC32校驗和的運算。
- xz 實用程式提供 fsync() 函數的調用,以便在刪除來源檔案之前刷新結果檔案的檔案快取。為了在刪除之前停用同步,已經實作了「--no-sync」選項。
- 在 xz、xzdec 和 lzmainfo 公用程式中,在螢幕上顯示訊息時,不可列印字元會被替換為問號。
- 在平台上的 xz 和 xzdec 中 Linux 為了隔離這個過程,已經實現了對 Landlock 機制第 5 版和第 6 版的支援。
- 新增了用於檢查許可證 build-aux/license-check.sh 的腳本。
- 作為 xz 實用程式的附加元件實現的 lzcmp、lzdiff、lzless、lzmore、lzgrep、lzegrep 和 lzfgrep 腳本已被宣佈為過時。
來源: opennet.ru
