中危 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级别的问题。
解决建议
建议您更新当前系统或软件至最新版,完成漏洞的修复。
受影响软件情况
# 类型 厂商 产品 版本 影响面
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
阿里云评分
6.6
  • 攻击路径
    远程
  • 攻击复杂度
    复杂
  • 权限要求
    普通权限
  • 影响范围
    全局影响
  • EXP成熟度
    未验证
  • 补丁情况
    官方补丁
  • 数据保密性
    无影响
  • 数据完整性
    无影响
  • 服务器危害
    无影响
  • 全网数量
    N/A
CWE-ID 漏洞类型
CWE-758 依赖未定义、未指明或实现定义的行为
阿里云安全产品覆盖情况