Linux Distros 未修補弱點:CVE-2026-98974

critical Nessus Plugin ID 371499

概要

Linux/Unix 主機上安裝的一個或多個套件存有弱點,廠商表示將不會修補。

說明

Linux/Unix 主機上安裝了一個或多個受到弱點影響的套件,且廠商未提供可用的修補程式。

- xfs:修正 exchange-range-to-eof 檔案大小交換 Norbert Szetei 發布了一個修補程式,其中包含對 XFS_IOC_EXCHANGE_RANGE TO_EOF 標誌中錯誤的不完整描述。此錯誤會誘騙 exchange-range 修改檔案,使其具有從 EOF 開始的共用區塊,這是絕對不允許的,因為檔案從未寫入超過 EOF 的資料,而且您只能共用寫入的資料區塊。這是隨後所有不正確行為的關鍵。最終,我從諾伯特那裡得到了關於出了什麼問題的描述:>公平。這是物理區塊編號,4k 區塊。peer 是重寫的檔案>,而 file1 是最終清除旗標>檔案。> > 開始,沒有共用任何內容:> >對等體大小 4096 -> [100] > file1 大小 12288 -> [200] [201] [202] > donor1 大小 4096 -> [300] > donor2 大小 4096 -> [400] > > 1.FICLONERANGE 對等體的區塊進入 file1 的中間插槽: > > 對等體大小 4096 -> [100] > file1 大小 12288 -> [200] [100] [202] reflink 旗標設定 > ^^^^^ 兩個檔案都擁有區塊 100 > > 2。XFS_IOC_EXCHANGE_RANGE文件 1 針對捐贈者 1,file1_offset 0,> file2_offset 8192,長度 0,TO_EOF。一個區塊被交換,>的大小與之交換:> > file1 大小 4096 -> [200] [100] [300] reflink 旗標集 > ^^^^^^^^^^^ 仍然擁有,現在已經超過了 donor1 大小>大小 12288 -> [202] > > file1 說它有一個區塊長,但它仍然擁有三個區塊。沒有什麼是>未繪製的。file2_offset是區塊 2,因此此交換無法清除旗標。> > 3.
XFS_IOC_EXCHANGE_RANGE文件 1 針對捐贈者 2,兩個偏移量 0,長度 4096。> i_disk_size這是兩個單區塊檔案交換所有內容,因此 > xmi_can_exchange_reflink_flags() 同意並清除標誌: > > file1 大小 4096 -> [400] [100] [300] reflink 標誌 > donor2 大小 4096 -> [200] 清除 > > 區塊 100 仍與對等體共用。> > 4.pwrite(file1, 4096, 4096),這是 file1 的第二個插槽,區塊 100。> xfs_is_cow_inode(file1) 為 false,因此沒有 CoW:> >對等體大小 4096 -> [100] 相同的區塊,區塊 100 > >新內容是這裡唯一重要的。PoC,它會讀取目前目錄中>稱為peer的檔案。檔案系統需要 reflink 和 > exchange-range,mkfs.xfs 7.x 預設會開啟。所以,是的,TO_EOF正在搞砸文件大小,即使它實際上正確地交換了數據塊。以下是 XFS_EXCHANGE_RANGE_TO_EOF 的預期行為,如其手冊頁所述: 忽略長度參數。從 file1_offset 到 EOF 的file1_fd中的所有位元組都會移至 file2_fd,而 file2 的大小會設定為 (file2_offset+(file1_length-file1_offset))。同時,file2 中從 file2_offset 到 EOF 的所有位元組都會移至 file1,並且 file1 的大小設定為 (file1_offset+(file2_length-file2_offset))。換句話說,如果我們只交換一部分文件數據,那麼我們應該只交換與交換數據相關的文件大小部分。不幸的是,程式碼會交換磁碟上的檔案大小和核心檔案大小,如果呼叫端傳入非零位移,則這是不正確的。混淆了檔案大小後,PoC 對看起來像未參照連結的單一區塊檔案使用第二個交換範圍呼叫。
由於檔案大小設定不正確,exchange-range 會認為它正在交換兩個檔案的完整內容,並清除損毀檔案上的 reflink 旗標。這可讓您擴充損毀檔案的寫入,以重寫剛過 EOF 的共用區塊。這已被通俗地稱為反流。正確設定檔案大小之後,第二個交換範圍就不會再認為它正在執行完整內容交換,因此它不會清除其任一檔案引數上的 reflink 旗標。Norbert 在此修補程式的早期版本之後,對我們沒有正確處理i_disk_size狀態提出了第二個抱怨:> 偏移量與內核i_size為界,但從>中減去 ---truncated--- (CVE-2026-98974)

請注意,Nessus 的判定取決於廠商所報告的套件是否存在。

解決方案

目前尚未有已知的解決方案。

另請參閱

https://security-tracker.debian.org/tracker/CVE-2026-98974

Plugin 詳細資訊

嚴重性: Critical

ID: 371499

檔案名稱: unpatched_CVE_2026_98974.nasl

版本: 1.1

類型: Local

代理程式: unix

系列: Misc.

已發布: 2026/10/23

已更新: 2026/10/23

支援的感應器: Frictionless Assessment Agent, Nessus Agent, Agentless Assessment, Tenable Cloud Security, Tenable Self-Hosted Container Security, Nessus

風險資訊

VPR

風險因素: Medium

分數: 6.9

百分位數: 96.41

CVSS v2

風險因素: High

基本分數: 7.5

時間性分數: 6.4

媒介: CVSS2#AV:N/AC:L/Au:N/C:P/I:P/A:P

CVSS 評分資料來源: CVE-2026-98974

CVSS v3

風險因素: Critical

基本分數: 9.8

時間性分數: 9

媒介: CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

時間媒介: CVSS:3.0/E:U/RL:U/RC:C

弱點資訊

CPE: cpe:/o:debian:debian_linux:13.0, p-cpe:/a:debian:debian_linux:linux

必要的 KB 項目: Host/local_checks_enabled, Host/cpu, global_settings/vendor_unpatched, Host/OS/identifier

可輕鬆利用: No known exploits are available

弱點發布日期: 2026/10/23

參考資訊

CVE: CVE-2026-98974