nilfs2:修复日志写入功能错误路径中的状态管理(CVE-2024-47669)
CVE编号
CVE-2024-47669利用情况
暂无补丁情况
N/A披露时间
2024-10-09漏洞描述
在Linux内核中,已经解决了以下漏洞:nilfs2:修复日志写入函数错误路径中的状态管理在提交a694291a6211(“nilfs2:将wait函数从nilfs_segctor_write中分离”)之后,即使用户数据块被分割成多个日志跨段,日志写入函数nilfs_segctor_do_construct()仍然能够连续发出I/O请求,但其在错误处理中引入了两个潜在的缺陷。首先,如果在创建第二个或后续日志时,nilfs_segctor_begin_construction()失败,日志写入函数不会调用nilfs_segctor_abort_construction()就直接返回,因此页面/叶片的写回标志将保持未清除状态。这会导致页面缓存操作等待写回标志。例如,当内存中的inode通过nilfs_evict_inode()被逐出时,调用的truncate_inode_pages_final()会卡住。其次,正常inode上设置的NILFS_I_COLLECTED标志保持未清除。因此,如果下一次日志写入涉及检查点创建,那没问题;但如果执行的是部分日志写入并不涉及检查点创建,那么带有NILFS_I_COLLECTED设置的inode会被错误地从“sc_dirty_files”列表中移除,它们的数据和b树块可能不会被写入设备,从而损坏块映射。通过统一在nilfs_segctor_do_construct()循环中的每个步骤失败时调用nilfs_segctor_abort_construction(),让其根据进度清理日志和段使用,并修正调用nilfs_redirty_inodes()的条件以确保清除NILFS_I_COLLECTED标志,来解决这些问题。解决建议
建议您更新当前系统或软件至最新版,完成漏洞的修复。- 攻击路径 N/A
- 攻击复杂度 N/A
- 权限要求 N/A
- 影响范围 N/A
- 用户交互 N/A
- 可用性 N/A
- 保密性 N/A
- 完整性 N/A
CWE-ID | 漏洞类型 |
Exp相关链接

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