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进行锁定操作,以确保线程安全。解决建议
建议您更新当前系统或软件至最新版,完成漏洞的修复。- 攻击路径 N/A
- 攻击复杂度 N/A
- 权限要求 N/A
- 影响范围 N/A
- 用户交互 N/A
- 可用性 N/A
- 保密性 N/A
- 完整性 N/A
CWE-ID | 漏洞类型 |
Exp相关链接

版权声明
本站原创文章转载请注明文章出处及链接,谢谢合作!
评论