从这个网页截图中,可以获取到以下关于漏洞的关键信息: 1. 漏洞描述: - 问题描述:在dm cache中,当快速设备在第一次挂起之前意外地扩展时,可能会发生越界访问。这是因为快速设备的扩展需要重新加载缓存表,而缓存表的大小可能不匹配新的快速设备大小,导致在第一次挂起时检查不正确,从而引发越界访问。 - 复现步骤: 1. 准备组件设备。 2. 加载缓存表,并故意在挂起缓存之前扩展快速设备,使内核数据结构不匹配。 3. 挂起缓存以写入内核脏位图和提示数组,导致在0x40处的脏位图发生越界访问。 2. KASAN报告: - KASAN报告了在is_dirty_callback函数中发生越界访问的错误。 - 虚拟地址为0x82b/0x80,大小为8字节。 3. 修复措施: - 通过检查在第一次挂起时缓存的大小变化来修复问题。 4. 签名和归因: - 提交者:Ming-Hung Tsai - 修复了:dm cache: cache shrinking support - CC:stable@vger.kernel.org - 签发:Mikulas Patocka、Joe Thornber、Greg Kroah-Hartman 5. Diffstat: - 一个文件(drivers/md/dm-cache-target.c)发生了16个插入和21个删除操作。 6. Diff内容: - 修改了 函数,增加了检查缓存大小变化的代码。 - 修改了 函数,增加了检查缓存大小变化的代码。 这些信息表明,这个漏洞是由于在快速设备扩展后,缓存表的大小不匹配快速设备的大小,导致在第一次挂起时检查不正确,从而引发越界访问。修复措施是通过检查在第一次挂起时缓存的大小变化来解决这个问题。