fsdax:dax_unshare_iter 需要复制整个块(CVE-2024-50250)

admin 2024-11-10 18:41:40 Ali_nvd 来源:ZONE.CI 全球网 0 阅读模式
fsdax:dax_unshare_iter 需要复制整个块(CVE-2024-50250)

CVE编号

CVE-2024-50250

利用情况

暂无

补丁情况

N/A

披露时间

2024-11-09
漏洞描述
在Linux内核中,已经解决了以下漏洞:fsdax模块中的dax_unshare_iter函数在复制块时需要改进。在dax_unshare_iter函数中,从srcmap复制到iomap的数据代码存在严重问题,bfoster最近的fsx更改已经暴露了这个问题。如果传递给dax_file_unshare的pos和len没有对齐到fsblock边界,那么_iter函数中的iter pos和长度将反映这种未对齐状态。dax_iomap_direct_access总是返回映射的fsdax页面的起始位置的指针,即使其pos参数位于该页面的中间也是如此。当iter->pos没有对齐到页面时,这对数据完整性是灾难性的,因为daddr/saddr并不指向与iter->pos相同的文件中的字节。因此,我们将数据复制到错误的地方,从而破坏了用户数据。如果在_iter函数中,iter->pos加上iomap_length()的结果没有对齐到页面,那么我们无法复制完整的块,并且只能部分填充目标块。这对数据保密性是灾难性的,因为我们暴露了stale pmem的内容。通过将copy_pos/copy_len对齐到页面边界来解决这两个问题(请记住,这是fsdax,因此1个fsblock等于1个基本页面),以便我们始终复制完整的块。我们还没有完成——没有调用invalidate_inode_pages2_range,因此拥有文件范围mmap的程序将在文件元数据更新完成后继续访问旧内存映射。请注意返回值——如果unshare成功,我们仍然需要返回iomap iter认为我们正在操作的数量字节。
解决建议
"将组件 Linux 升级至 6.2 及以上版本"
参考链接
https://git.kernel.org/stable/c/50793801fc7f6d08def48754fb0f0706b0cfc394
https://git.kernel.org/stable/c/8e9c0f500b42216ef930f5c0d1703989a451913d
https://git.kernel.org/stable/c/9bc18bb476e50e32e5d08f2734d63d63e0fa528c
https://git.kernel.org/stable/c/bdbc96c23197d773a7d1bf03e4f11de593b0ff28
受影响软件情况
# 类型 厂商 产品 版本 影响面
1
运行在以下环境
系统 debian_11 linux * Up to (excluding) 5.10.226-1
CVSS3评分 N/A
  • 攻击路径 N/A
  • 攻击复杂度 N/A
  • 权限要求 N/A
  • 影响范围 N/A
  • 用户交互 N/A
  • 可用性 N/A
  • 保密性 N/A
  • 完整性 N/A
N/A
CWE-ID 漏洞类型
- avd.aliyun.com
weinxin
版权声明
本站原创文章转载请注明文章出处及链接,谢谢合作!
评论:0   参与:  0