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

high Nessus Plugin ID 345046

概要

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

說明

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

- Btrfs:資料回寫提交 095be159f3eb 期間的寫入保護對開本 (Btrfs:統一對開本已變更旗標清除) 以純 folio_test_dirty() 檢查取代了 extent_write_cache_pages() 中的 folio_clear_dirty_for_io() 呼叫。除了清除已變更旗標外,folio_clear_dirty_for_io() 也會呼叫 folio_mkclean(),以寫入保護對應對應對應作品集的共用 mmap PTE。請注意,當我們在對開本的最後一個扇區(非子頁面情況的唯一扇區)上清除 dirty 時,我們仍然會在 submit_one_sector() 中稍後調用 folio_clear_dirty_for_io()。但我們在 extent_write_cache_pages() 中失去了這個早期的呼叫。
如果沒有額外的寫入保護,具有 mmap-ed 檔案的處理程序可以在回寫使用磁區時修改磁區,其方式需要穩定的對開本 (總和檢查碼、壓縮、複製等...),而不會出現錯誤,這表現為一些具體的錯誤。1. 對於較大的對開本或子頁面扇區大小,可以提交不涵蓋整個對開本的簡歷。當這種情況發生時,我們將有一個我們*未*調用 folio_clear_dirty_for_io() 的對開本的簡歷。如果具有現有 mmap-ed PTE 的工作在此視窗中寫入 (沒有錯誤..) ,可能會導致損毀。如果寫入在總和檢查碼或寫入本身進行時到達,這可能會導致總和檢查碼無效,並在讀取時報告稍後的損毀報告。如果寫入在總和檢查碼/寫入完成之後,但在清除最後一個已變更磁區之前到達,則該寫入存在於頁面快取中,但不會影響已變更追蹤,且當對開本完全完成提交且已清除已變更位時,寫入將會遺失。這會導致即使呼叫 fsync() 也會遺失寫入。2. 對於與主 extent_writepage() 迴圈分批完成的分區提交,我們還面臨這些提交違反 csum 的風險。分區寫入會限制為max_zone_append_size,且未與對開本對齊,因此提交可以跨越兩個對開本。在 extent_write_cache_pages() 中處理的第一個對開本將呼叫 extent_write_locked_range(),該對開本將提交下一個對開本的部分範圍,而該對開本的其餘部分可能仍然是髒的。因此,在提交的扇區上清除髒東西不會調用 folio_clear_dirty_for_io(),我們有同樣的問題。由於 extent_write_cache_pages() 會略過這些批次提交的對開本 (這些對開本已由前一個對開本標示為從提交中回寫),因此我們必須在 lock_delalloc_folios() 中新增額外的寫入保護。3. 對於內嵌範圍,這將微妙地面臨丟失寫入的風險,這些寫入發生在我們複製內嵌範圍之後/期間,但在我們清除對開本上的髒東西之前。4.
對於跨越 EOF 的對開本,mmap 可能會竄改 EOF 之後的歸零位元組,並導致它們在未來的錯誤會不正確地看到它們而不是零的情況下被保留。5. 最後,對於壓縮範圍,我們在壓縮對開本時可能會修改對開本,這將導致壓縮資料損毀。具體來說,在 run_delalloc_compressed() 中,我們將工作排隊以在 BTRFS_COMPRESSION_CHUNK_SIZE (512K) 區塊中執行 compress_file_range(),這些區塊將呼叫該範圍內的 btrfs_folio_clamp_clear_dirty()。
對於非子頁面,這將始終安全地清除整個作品集。對於子頁面,我們在這裡也冒著部分清除的風險。特別是,想像一個 2M 作品集被分解成 512K 個工作區塊,這些工作區塊可能會在所有區塊 compress_file_range() 工作者足夠遠以完成清除作品集的所有髒點陣圖並到達 folio_clear_dirty_for_io() 之前開始在一個區塊上進行壓縮工作。提交範圍邊緣的大型對開本同樣面臨僅部分清除的風險。這個特殊的差距是由同一系列中的第二個修補程式引入的:提交 a4ef54dbb576 (btrfs:使 extent_range_clear_dirty_for_io() 處理磁區大小<頁面大小情況) 我們不能簡單地恢復對 folio_clear ---truncated--- (CVE-2026-89772) 的調用

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

解決方案

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

另請參閱

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

Plugin 詳細資訊

嚴重性: High

ID: 345046

檔案名稱: unpatched_CVE_2026_89772.nasl

版本: 1.1

類型: Local

代理程式: unix

系列: Misc.

已發布: 2026/9/12

已更新: 2026/9/12

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

風險資訊

VPR

風險因素: Medium

分數: 4.3

百分位數: 53.43

CVSS v2

風險因素: Low

基本分數: 3.3

時間性分數: 2.8

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

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

CVSS v3

風險因素: High

基本分數: 7.1

時間性分數: 6.5

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

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

弱點資訊

CPE: cpe:/o:debian:debian_linux:14.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/9/11

參考資訊

CVE: CVE-2026-89772