中危 Wasmtime 拒绝服务漏洞(CVE-2023-30624)
CVE编号
CVE-2023-30624利用情况
暂无补丁情况
官方补丁披露时间
2023-04-28漏洞描述
Wasmtime管理每个实例状态(如表和内存)的实现包含LLVM级别的未定义行为。当使用LLVM 16编译时,发现这种未定义的行为会导致运行时级别的问题,这会导致一些对正确性至关重要的写入被优化掉。使用Rust 1.70编译的Wasmtime存在漏洞,目前处于测试版或更高版本,已知其函数编译错误。使用当前Rust稳定版本1.69和之前版本编译的Wasmtime版本目前还不知道有任何问题,但理论上可能会出现潜在问题。 潜在的问题是Wasmtime实例的运行时状态涉及一个名为instance的Rust定义的结构,该结构后面有一个尾随的VMContext结构。这个VMContext结构有一个运行时定义的布局,每个模块都是唯一的。这种表示不能用Rust中的安全代码来表示,因此需要不安全的代码来维持这种状态。然而,执行此操作的代码有一些方法,这些方法将&self作为参数,但会修改分配的VMContext部分中的数据。这意味着从&self派生的指针发生了变异。这通常是不允许的,除非在Rust中存在UnsafeCell。当编译到LLVM时,这些函数具有noalias只读参数,这意味着通过指针进行写入是UB。 Wasmtime对VMContext的内部表示和管理已经更新,在适当的情况下使用&mut self方法。此外,Rust中不安全代码的验证工具,如cargo miri,计划很快在主分支上执行,以修复未来编译器版本中可能利用的任何Rust级别的问题。解决建议
建议您更新当前系统或软件至最新版,完成漏洞的修复。
参考链接 |
|
---|---|
https://github.com/bytecodealliance/wasmtime/commit/0977952dcd9d482bff7c28886... | |
https://github.com/bytecodealliance/wasmtime/security/advisories/GHSA-ch89-5g45-qwc7 |
受影响软件情况
# | 类型 | 厂商 | 产品 | 版本 | 影响面 | ||||
1 | |||||||||
---|---|---|---|---|---|---|---|---|---|
运行在以下环境 | |||||||||
应用 | bytecodealliance | wasmtime | * | Up to (excluding) 6.0.2 | |||||
运行在以下环境 | |||||||||
应用 | bytecodealliance | wasmtime | 7.0.0 | - | |||||
运行在以下环境 | |||||||||
应用 | bytecodealliance | wasmtime | 8.0.0 | - | |||||
运行在以下环境 | |||||||||
系统 | amazon_2 | ecs-service-connect-agent | * | Up to (excluding) 1.amzn2 | |||||
运行在以下环境 | |||||||||
系统 | amazon_2023 | ecs-service-connect-agent | * | Up to (excluding) 1.amzn2023 |
- 攻击路径 远程
- 攻击复杂度 复杂
- 权限要求 普通权限
- 影响范围 全局影响
- EXP成熟度 未验证
- 补丁情况 官方补丁
- 数据保密性 无影响
- 数据完整性 无影响
- 服务器危害 无影响
- 全网数量 N/A
CWE-ID | 漏洞类型 |
CWE-758 | 依赖未定义、未指明或实现定义的行为 |
Exp相关链接

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