Linux Distros 未修补的漏洞: CVE-2024-53079

medium Nessus 插件 ID 231397

简介

Linux/Unix 主机上安装的一个或多个程序包存在漏洞,但供应商表示不会修补此漏洞。

描述

Linux/Unix 主机中安装的一个或多个程序包受到一个漏洞影响,而供应商没有提供补丁程序。

- mm/thp:修复延迟拆分队列的命名和锁定 最近的更改给 THP 延迟拆分队列带来了更大压力:在负载情况下,暴露了存在已久的争用,导致 list_del 损坏、错误页面状态和更糟糕的情况(这两个方面都有 BUG,所以通常看不到它们最终的影响有多大)。近期相关的变更为 6.8 的 mTHP、6.10 的 mTHP 换出和 6.12 的 mTHP 交换、改进交换分配和利用不足的 THP 拆分。修复锁定之前:将不撤消 large_rmappable() 的误导性 folio_undo_large_rmappable() 重命名为 folio_unqueue_deferred_split(),即其执行的操作。但该函数及其越界 __callee 是可用性非常有限的 mm 内部函数:
添加注释和 WARN_ON_ONCE 以检查使用情况;并返回表明延迟的拆分是否取消排队的 bool,然后可在与安全检查有关的 WARN_ON_ONCE 中使用(避免调用者遇到 __folio_unqueue_deferred_split()
中令人费解的条件)。仅忽略来自 free_unref_folios() 的 folio_unqueue_deferred_split(),其所有调用程序现在会预先调用(如果有任何遗漏,bad_page() 会告知)- 除了其调用程序 put_pages_list(),其本身不再有任何调用程序(并将应单独删除)。Swapout:
mem_cgroup_swapout() 已重置 folio->memcg_data 0,而未检查延迟拆分列表中的 THP 作品集及将其取消排队;这是不成功的,因为 split_queue_lock 依赖 memcg(当启用 memcg 时);因此,swapout 稍后在释放 folio 时使用 pgdat 的锁定取消此类 THP 的排队: 可能损坏 memcg 的列表。 __remove_mapping() 已将此处的 refcount 冻结为 0,因此在重置 memcg_data 之前调用 folio_unqueue_deferred_split() 不会出现问题。这可追溯至 5.4 提交 87eaceb3faa5(mm:thp:使延迟拆分缩小器内存感知):其中包含对 swapcache 的检查,然后再将其添加至延迟队列,但是在将 THP 添加至 swapcache 之前,未检查延迟队列。这对于 reclaim 中的通常事件序列运作良好(尽管可以通过几种罕见的方式换出延迟队列上的 THP),但 6.12 commit dafff3f4c850(mm:拆分未充分使用的 THP)避免拆分未充分使用的 THP reclaim 中的 ,这使得延迟队列上的 swapcache THP 变得很常见。是否要在添加到延迟队列之前保持对 swapcache 的检查?是:这不再必需项,但保留了现有行为,并且可能是值得的优化(如果删除了该检查,vmstat 在交换负载下的队列上会显示更多的流量);更新其备注。Memcg-v1 移动(已弃用):mem_cgroup_move_account() 一直更改 folio->memcg_data 而不检查延迟列表中的 THP folio 和将其取消排队,有时会造成 memcg 列表的损坏,如 swapout。此处 Refcount 不为零,因此 folio_unqueue_deferred_split() 只能在 WARN_ON_ONCE 中使用,以验证必须提前完成的修复:mem_cgroup_move_charge_pte_range() 首先尝试拆分 THP(拆分课程出列),如果拆分失败。不理想,但已请求移动负责,khugepaged 应稍后修复 THP:nobody want new custom unqueueing code just for this deprecated case。87eaceb3faa5 提交确实包含从一个延迟列表移动到另一个延迟列表的代码(但是没有意识到 refcount 非 0 时的不安全性);但 已通过 5.6 commit fac0516b5534(mm:thp:无需注意 memcg 负责移动路径中的延迟拆分队列)删除,此请求争用 PMD 映射的存在性可保证 THP 不会位于延迟列表上。同上,极少情况下为 false,现在通常为 false。向后移植到 6.11 应该会很简单明了。较早版本的向后移植必须注意包含其他 _deferred_list 补丁和依存关系。向后移植没有必要,但它们可以修复 cornercase。(CVE-2024-53079)

请注意,Nessus 依赖供应商报告的程序包是否存在进行判断。

解决方案

目前尚未有任何已知的解决方案。

另见

https://access.redhat.com/security/cve/cve-2024-53079

https://security-tracker.debian.org/tracker/CVE-2024-53079

https://ubuntu.com/security/CVE-2024-53079

插件详情

严重性: Medium

ID: 231397

文件名: unpatched_CVE_2024_53079.nasl

版本: 1.2

类型: local

代理: unix

系列: Misc.

发布时间: 2025/3/6

最近更新时间: 2025/5/9

支持的传感器: Nessus Agent, Nessus

风险信息

VPR

风险因素: Medium

分数: 4.4

CVSS v2

风险因素: Low

基本分数: 2.1

时间分数: 1.6

矢量: CVSS2#AV:L/AC:L/Au:N/C:N/I:P/A:N

CVSS 分数来源: CVE-2024-53079

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

漏洞信息

必需的 KB 项: Host/local_checks_enabled, Host/cpu, global_settings/vendor_unpatched

易利用性: No known exploits are available

漏洞发布日期: 2024/11/19

参考资料信息

CVE: CVE-2024-53079