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

medium Nessus Plugin ID 335827

概要

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

說明

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

- mm/slab:使用新的 kmalloc 類型防止自由路徑中的無限遞迴 提交 280ea9c3154b (mm/slab:
避免從自己的 slab 配置slabobj_ext陣列) 避免從相同大小的 kmalloc 快取遞迴分配 obj_exts,方法是在陣列大小等於要配置的物件大小時提高 obj_exts 陣列的配置大小。然而,正如 Danielle Costantino 和 Shakeel Butt 所報告的那樣,即使是來自不同大小的 kmalloc 緩存的 slab 也可以通過相互分配 obj_exts 陣列來形成一個循環 [1]:發生了什麼:KMALLOC_NORMAL slab 的 obj_exts 陣列(由分配分析/memcg 會計使用)本身是從KMALLOC_NORMAL緩存中獲取的 kmalloc(),因此 slab 保存另一個 slab 的obj_exts陣列關係可以形成循環。使用 sizeof(struct slabobj_ext) == 16 和主機的幾何圖形: - kmalloc-512 有 64 個物件/slab ->陣列為 64*16 == 1024 位元組,由 kmalloc-1k 提供;- kmalloc-1k 有 32 個物件/slab ->陣列為 32*16 == 512 位元組,由 kmalloc-512 提供。因此,kmalloc-512 板和 kmalloc-1k 板可以容納彼此的obj_exts陣列。丟棄一個會釋放另一個的陣列,後者會清空並丟棄該 slab,從而釋放第一個陣列,依此類推:__free_slab() -> free_slab_obj_exts() -> kfree() -> discard_slab() -> __free_slab() 沿著循環遞迴,直到堆疊耗盡。透過記憶體配置分析,這允許在自由路徑中進行無限遞迴,並導致 Meta 叢集中的生產主機上發生堆疊溢位 [1]: 錯誤:任務堆疊保護頁面被命中 哎呀:堆疊保護頁面 RIP:0010:kfree+0x8/0x5d0 呼叫追蹤:__free_slab+0x66/0xc0 kfree+0x3f0/0x5d0 ...(~125x __free_slab <-> kfree) ... <kernel driver freeing a resource> do_syscall_64 建議 [1] 透過始終從大小大於物件大小的 kmalloc 快取 (或大型 kmalloc) 提供 obj_exts 陣列分配來解決此問題。然而,正如 Vlastimil Babka [2] 所指出的,這可能會浪費過多的內存,因為大型 kmalloc 大小(例如 kmalloc-8k)的 slab 通常需要比物件大小小得多的obj_exts陣列。因此,與其增加尺寸,不如讓我們採取不同的方法;配置obj_exts陣列時,不允許在 kmalloc 類型之間形成循環。目前,所有obj_exts陣列都是從一般 kmalloc 快取提供。如果從永遠不能有obj_exts陣列的特殊 kmalloc 類型提供一般 kmalloc 快取的obj_exts陣列,則無法建立循環。若要達成此目的,請建立名為 KMALLOC_NO_OBJ_EXT 的新 kmalloc 類型。當 1) 記憶體配置分析未永久停用,或 2) 優先順序高於 KMALLOC_CGROUP 的 kmalloc 類型以 KMALLOC_NORMAL 別名時,會使用 SLAB_NO_OBJ_EXT 旗標建立KMALLOC_NO_OBJ_EXT快取。現在必須延遲 KMALLOC_NO_OBJ_EXT 快取的 Sheaf 啟動程序,因為當該大小的 KMALLOC_NO_OBJ_EXT 快取尚未準備就緒時obj_exts,穀倉的配置可能會觸發一般 kmalloc 快取的陣列配置。為簡單起見,請稍後為所有 kmalloc 快取執行滑輪的啟動連結。引入新的 slab alloc 旗標 SLAB_ALLOC_NO_OBJ_EXT,以防止配置obj_exts陣列,並讓 kmalloc_slab() 在指定時覆寫類型以KMALLOC_NO_OBJ_EXT。請注意,kmalloc_type() 保持不變,因為 kmalloc_flags() 繞過 kmalloc 快速路徑。不要將SLAB_ALLOC_NO_RECURSE傳遞給 alloc_slab_obj_exts() 中的 kmalloc_flags(),而應僅在從一般 kmalloc 快取配置物件時才使用 SLAB_ALLOC_NO_OBJ_EXT。雖然這可以防止obj_exts的無限遞迴分配,但它允許KMALLOC_NO_OBJ_EXT快取具有滑輪。由於束分配指定了防止分配束和obj_exts陣列的SLAB_ALLOC_NO_RECURSE,因此遞迴深度是有界限的。obj_exts 非 ---truncated--- (CVE-2026-74576) 的陣列

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

解決方案

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

另請參閱

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

Plugin 詳細資訊

嚴重性: Medium

ID: 335827

檔案名稱: unpatched_CVE_2026_74576.nasl

版本: 1.2

類型: Local

代理程式: unix

系列: Misc.

已發布: 2026/8/15

已更新: 2026/8/16

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

風險資訊

VPR

風險因素: Low

分數: 3

百分位數: 23.68

CVSS v2

風險因素: Low

基本分數: 2.1

時間性分數: 1.8

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

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

CVSS v3

風險因素: Medium

基本分數: 5.5

時間性分數: 5.1

媒介: 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: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/8/15

參考資訊

CVE: CVE-2026-74576