Rapid7 Vulnerability & Exploit Database

Debian: CVE-2024-44952: linux——安全更新

Free InsightVM Trial 无需信用卡
2024年攻击情报报告 Rapid7实验室的最新研究
Back to Search

Debian: CVE-2024-44952: linux——安全更新

Severity
4
CVSS
(AV: L /交流:米/非盟:N / C: P / I: P / A: P)
Published
09/04/2024
Created
09/07/2024
Added
09/06/2024
Modified
09/09/2024

Description

在Linux内核中,修复了以下漏洞: driver core:修复uevent_show() vs driver detach race uevent_show() wants to de-reference dev->driver->name. There is no clean way for a device attribute to de-reference dev->driver unless that 属性通过(struct device_driver)定义.dev_groups. Instead, the 在属性处理程序中使用device_lock()的反模式存在风险 带有代码路径的死锁,在保持时删除设备属性 the lock. 给定device_lock(),此死锁通常对lockdeep不可见。 标记为lockdep_set_novalidate_class(),但有些子系统分配一个 local lockdep key for @dev->mutex to reveal reports of the form: ====================================================== 警告:检测到可能的循环锁定依赖 6.10.0-rc7+ #275污染:goe N ------------------------------------------------------ Modprobe /2374正在尝试获取锁: ffff8c2270070de0 (kn->active#6){++++}-{0:0}, at: x220 __kernfs_remove + 0 xde / 0 但任务已经锁定: ffff8c22016e88f8 (&cxl_root_key){+.+.}-{3:3}, at: device_release_driver_internal+0x39/0x210 哪个锁已经依赖于新锁. 现有的依赖链(以相反的顺序)是: -> #1 (&cxl_root_key){+.+.}-{3:3}: __mutex_lock + 0 x99/0xc30 uevent_show+0xac/0x130 dev_attr_show + 0 x18/0x40 sysfs_kf_seq_show + 0 0 xf0 xac / seq_read_iter + 0 x110/0x450 vfs_read+0x25b/0x340 ksys_read+0x67/0xf0 do_syscall_64 + 0 x75/0x190 entry_SYSCALL_64_after_hwframe + 0 x76/0x7e -> #0 (kn->active#6){++++}-{0:0}: x1fa0 __lock_acquire + 0 x121a / 0 lock_acquire + 0 xd6/0x2e0 kernfs_drain + 0 x1e9/0x200 x220 __kernfs_remove + 0 xde / 0 xa0 kernfs_remove_by_name_ns + 0 x5e / 0 device_del+0x168/0x410 device_unregister + 0 x13/0x60 devres_release_all + 0 xb8/0x110 x70 device_unbind_cleanup + 0 xe / 0 device_release_driver_internal + 0 x1c7/0x210 driver_detach + 0 x47/0x90 bus_remove_driver + 0 0 xf0 x6c / cxl_acpi_exit + 0 xc / 0 x11 [cxl_acpi] __do_sys_delete_module.isra.0+0x181/0x260 do_syscall_64 + 0 x75/0x190 entry_SYSCALL_64_after_hwframe + 0 x76/0x7e 但观察到的是,驱动对象通常要长得多 驻留的非设备对象. 执行无锁是合理的 取消@driver指针的引用,即使它正在从 device. 鉴于驱动程序注销的频率不高,使用 module_remove_driver()中的Synchronize_rcu()关闭任何潜在的 races. 如果让synchronize_rcu()只是为了 处理罕见的模块移除竞赛uevent_show()事件. 感谢Tetsuo Handa对syzbot报告的调试分析[1].

Solution(s)

  • debian-upgrade-linux

使用Rapid7实时仪表板, 我对我的网络上的所有资产都有一个清晰的视图, 哪些是可以利用的, 以及我需要做些什么来实时减少环境中的风险. 没有其他工具能给我们这样的价值和洞察力.

- Scott Cheney, Sierra View医疗中心信息安全经理

;