Linux Distros 未修補的弱點:CVE-2025-38472

medium Nessus Plugin ID 251301

概要

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

說明

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

- netfilternf_conntrack修正因移除未初始化項目而導致的損毀。當嘗試從雜湊值區清單取消連結 conntrack 項目時報告 conntrack 發生損毀[例外 RIP
__nf_ct_delete_from_lists+172] [..] #7 [ff539b5a2b043aa0] nf_ct_delete@ffffffffc124d421 [nf_conntrack] #8 [ff539b5a2b043ad0] nf_ct_gc_expired@ffffffffc124d999 [nf_conntrack] #9 [4 ]ff5295ba2
ffffffffc124efbc 的 __nf_conntrack_find_get [nf_conntrack] [..] nf_conn 結構標記為從 slab 配置但似乎處於部分初始化狀態ct hlist 指標無用看起來像 ct 雜湊值 (因此損毀)。 ct->status 等於 IPS_CONFIRMED|IPS_DYING而 ct->timeout 是預期的 30000 (=30s)這是未預期的結果。其他項目看似正常 udp conntrack 項目。如果我們略過 ct->status 並假裝其為 0該項目會與新配置但尚未插入雜湊的項目相符- ct hlist 指標過載並儲存/快取原始 tuple 雜湊 - ct->timeout 與相對項目相符新 udp 流程的預期時間而不是 'jiffies' 絕對值。如果不是因為 IPS_CONFIRMED 的存在__nf_conntrack_find_get() 會略過該項目。理論上我們確實發生下列爭用cpu x cpu y cpu z 發現項目 E 發現項目 EE 已過期 <preemption> nf_ct_delete() 將 E 傳回至 rcu slab init_conntrack E 已重新初始化ct->status 設為 0回覆 tuplehash hnnode .pprev 儲存雜湊值。中央處理器在其即將於 cpu x 上刪除之前發現 E。E 現已在 cpu z 上重新初始化。 cpu y 在檢查到期和/或確認位元之前被先佔。 ->refcnt 設為 1 E 現在由 skb 擁有
->timeout 設為 30000 如果 CPU 現在恢復執行會將 E 視為已過期但會因為缺少 CONFIRMED 位元而略過 E。 nf_conntrack_confirm 獲得呼叫 設定 ct->status |= CONFIRMED這是錯誤的 E 尚未新增至雜湊表。 cpu y 恢復時它發現 E 已過期但 CONFIRMED <resumes> nf_ct_expired() -> yes (ct->timeout 為 30 秒) 確認已設定位元。中央處理器會嘗試從雜湊表中刪除 Enf_ct_delete() -> set DYING bit __nf_ct_delete_from_lists 即使在此情況下也不保證一定會當機cpu z 仍保留表格值區鎖定因此 y 區塊等待執行緒同步鎖定由z CONFIRMED 已設定但不保證 ct 一定會新增至雜湊chaintoolong 或衝突解決邏輯都會略過插入步驟。回覆 hnnode.pprev 仍會儲存雜湊值。解除鎖定執行緒同步鎖定傳回 NF_DROP<unblocks, then crashes on hlist_nulls_del_rcu pprev>若 CPU z 確實將項目插入雜湊表cpu y 會立即再次取消連結 E但不會發生當機。若沒有「cpu y」爭用「garbage」hlist 將沒有任何後果ct refcnt 保持在 1最後 skb 將被釋放且 E 透過下列方式遭到破壞
nf_conntrack_put -> nf_conntrack_destroy -> nf_ct_destroy。若要解決此問題請將 IPS_CONFIRMED 指派移到表格插入之後解鎖之前。Pablo 指出confirm-bit-store 可重新排序為在 hlist add resp 之前發生。逾時修正因此切換至 set_bit 和 Before_atomic 記憶體障礙以防止此情形。其他 CPU 是否可以在設定 CONFIRMED 位元之前觀察到新插入的項目並不重要 無法將此類事件與上述事件區分開來 E 是舊的化身案例項目將被略過。也將 nf_ct_should_gc() 變更為先檢查已確認的位元。gc 序列為 1. 檢查項目是否已過期如果未過期則跳至下一個項目 2. 取得過期項目的參照。 3. 呼叫 nf_ct_should_gc() 以雙重檢查步驟 1。因此只會針對已過期檢查的項目呼叫 nf_ct_should_gc()。在此修補程式之後一旦確認的位元檢查通過
---truncated--- (CVE-2025-38472)

請注意,Nessus 依賴供應商報告的套件存在。

解決方案

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

另請參閱

https://security-tracker.debian.org/tracker/CVE-2025-38472

Plugin 詳細資訊

嚴重性: Medium

ID: 251301

檔案名稱: unpatched_CVE_2025_38472.nasl

版本: 1.1

類型: local

代理程式: unix

系列: Misc.

已發布: 2025/8/18

已更新: 2025/8/18

支援的感應器: Frictionless Assessment Agent, Nessus Agent, Agentless Assessment, Nessus

風險資訊

VPR

風險因素: Medium

分數: 4.4

CVSS v2

風險因素: Medium

基本分數: 4.9

時間性分數: 3.6

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

CVSS 評分資料來源: CVE-2025-38472

CVSS v3

風險因素: Medium

基本分數: 5.5

時間性分數: 4.8

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

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

弱點資訊

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

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

可輕鬆利用: No known exploits are available

弱點發布日期: 2025/7/28

參考資訊

CVE: CVE-2025-38472