mm:shmem:修复 shmem_getattr() 中的数据竞争(CVE-2024-50228)

admin 2024-11-10 18:54:43 Ali_nvd 来源:ZONE.CI 全球网 0 阅读模式
mm:shmem:修复 shmem_getattr() 中的数据竞争(CVE-2024-50228)

CVE编号

CVE-2024-50228

利用情况

暂无

补丁情况

N/A

披露时间

2024-11-09
漏洞描述
在Linux内核中,存在一个已经被解决的漏洞,该漏洞与共享内存(shmem)相关。具体来说,这个漏洞涉及到数据竞争(data-race)问题。漏洞描述如下:在调用`generic_fillattr()`函数时,如果没有持有读锁,会在inode成员变量上发生数据竞争,这可能导致不可预期的行为。由于`shmem_getattr()`调用`generic_fillattr()`时并没有特殊的保护机制,因此在执行`shmem_unlink()`或`shmem_mknod()`等函数时,会发生数据竞争。这可能导致不可预测的结果,因此仅仅注释掉相关代码是不够的。为了解决这个问题,当从`shmem_getattr()`调用`generic_fillattr()`时,应该使用`inode_lock_shared()`和`inode_unlock_shared()`来保护inode,以避免数据竞争。这样可以确保对inode成员变量的访问是线程安全的,从而避免潜在的数据竞争问题。此外,该问题是由Kernel Concurrency Sanitizer(KCSAN)在Syzbot测试期间检测到的。测试期间检测到在`generic_fillattr()`和`inode_set_ctime_current()`之间存在数据竞争,并且值从`0x2755ae53`更改为了`0x27ee44d3`。该问题涉及的任务和CPU信息也已被提供。总结来说,这个漏洞是由于在共享内存操作中缺乏适当的锁定机制而导致的数据竞争问题。为了修复这个问题,应该在调用`generic_fillattr()`时对inode进行锁定操作,以确保线程安全。
解决建议
建议您更新当前系统或软件至最新版,完成漏洞的修复。
参考链接
https://git.kernel.org/stable/c/3d9528484480e8f4979b3a347930ed383be99f89
https://git.kernel.org/stable/c/7cc30ada84323be19395094d567579536e0d187e
https://git.kernel.org/stable/c/82cae1e30bd940253593c2d4f16d88343d1358f4
https://git.kernel.org/stable/c/9fb9703cd43ee20a6de8ccdef991677b7274cec0
https://git.kernel.org/stable/c/bda1a99a0dd644f31a87d636ac624eeb975cb65a
https://git.kernel.org/stable/c/d949d1d14fa281ace388b1de978e8f2cd52875cf
https://git.kernel.org/stable/c/edd1f905050686fdc4cfe233d818469fdf7d5ff8
https://git.kernel.org/stable/c/ffd56612566bc23877c8f45def2801f3324a222a
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