从这个网页截图中,可以获取到以下关于漏洞的关键信息: 1. 漏洞描述: - 问题描述:在dm cache中,当快速设备在第一次挂起之前意外地扩展时,可能会发生越界访问。这是因为快速设备的扩展需要重新加载缓存表,而缓存表的大小可能不匹配新的快速设备大小,导致在第一次挂起时检查不正确,从而引发问题。 - 复现步骤: 1. 准备组件设备。 2. 加载缓存表,并故意在挂起缓存之前扩展快速设备,使内核数据结构不匹配。 3. 挂起缓存以写入内核脏位图和提示数组,导致在脏位图偏移0x40处发生越界访问。 2. KASAN报告: - KASAN报告了在is_dirty_callback函数中发生越界访问的错误。 - 虚拟地址为0x82b/0x80,大小为8字节。 3. 修复措施: - 通过检查在第一次挂起时缓存的大小变化来修复问题。 4. 补丁内容: - 修改了 中的 函数,确保在缓存大小发生变化时能够正确处理。 - 修改了 函数,确保在缓存大小发生变化时能够正确处理。 5. 签名和归因: - 签署:由Ming-Hung Tsai签署。 - 修复:修复了“dm cache: cache shrinking support”问题。 - CC:stable@vger.kernel.org。 - 签署:由Mikulas Patocka和Joe Thornber签署。 - 归因:由Greg Kroah-Hartman归因。 这些信息详细描述了漏洞的背景、复现步骤、KASAN报告、修复措施以及补丁内容,有助于理解问题的根源和修复方法。