带有 `linux_raw` 后端的 `rustix::fs::Dir` 迭代器可能导致内存爆炸 (CVE-2024-43806)
CVE编号
CVE-2024-43806利用情况
暂无补丁情况
N/A披露时间
2024-08-27漏洞描述
Rustix是一套针对POSIX风格API的安全Rust绑定。在使用`rustix::fs::Dir`和`linux_raw`后端时,当遇到IO错误时,迭代器可能会“卡住”。结合`rustix::fs::Dir::read_more`中的内存过度分配问题,这可能导致快速且无限的内存膨胀(如果在热门路径上使用,几秒钟内就会占用数GB内存),并最终导致应用程序OOM崩溃。最初发现此症状是在https://github.com/imsnif/bandwhich/issues/284中。该帖子中有大量关于我们调查的细节。完整详情可以在GHSA-c827-hfw6-qwvm存储库咨询中阅读。如果一个程序尝试在文件被删除后使用其文件描述符访问目录(或任何其他使`Dir`迭代器处于卡住状态的操作),并且实现没有在遇到错误后中断,则可能会导致内存爆炸。例如,Linux的各种虚拟文件系统(例如`/proc`、`/sys`)可以包含自发出现和消失的目录。尝试直接使用或间接使用`rustix::fs::Dir`(例如使用`procfs` crate)来迭代它们可能会触发此错误条件,如果实现决定在错误上继续。因此,了解受漏洞影响的目标实现细节的攻击者可以尝试通过一种或多种可用的API触发此错误条件。如果成功,应用程序主机将很快耗尽内存,之后应用程序可能会被OOM杀手终止,从而导致拒绝服务。这个问题已在发布版本0.35.15、0.36.16、0.37.25和0.38.19中得到解决。建议用户进行升级。对于此问题,尚无已知的解决方案。解决建议
"将组件 rustix 升级至 0.36.16 及以上版本""将组件 rustix 升级至 0.35.15 及以上版本""将组件 rustix 升级至 0.38.19 及以上版本""将组件 rustix 升级至 0.37.25 及以上版本"
参考链接 |
|
---|---|
https://github.com/bytecodealliance/rustix/security/advisories/GHSA-c827-hfw6-qwvm | |
https://github.com/imsnif/bandwhich/issues/284 |
- 攻击路径 网络
- 攻击复杂度 低
- 权限要求 低
- 影响范围 未更改
- 用户交互 无
- 可用性 高
- 保密性 无
- 完整性 无
CWE-ID | 漏洞类型 |
Exp相关链接

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