中危 通过特制有效负载进行无限解码循环 (CVE-2023-6245)
CVE编号
CVE-2023-6245利用情况
暂无补丁情况
官方补丁披露时间
2023-12-08漏洞描述
当使用'empty'数据类型的特制负载进行解析时,Candid库会引发拒绝服务漏洞。例如,如果负载为`record { * ; empty }`,而canister接口期望`record { * }`,那么Rust candid解码器会将empty视为类型所需的额外字段。empty类型的问题在于,Candid Rust库在跳过该字段时错误地将empty分类为可恢复错误,从而导致无限解码循环。使用受影响版本的candid的canisters暴露于拒绝服务的风险中,因为解码过程会无限运行,直到canister由于达到每次执行轮的最大指令限制而陷入陷阱。重复暴露于该负载将导致canister性能下降。注意:使用Motoko编写的canisters不受影响。解决建议
建议您更新当前系统或软件至最新版,完成漏洞的修复。受影响软件情况
# | 类型 | 厂商 | 产品 | 版本 | 影响面 | ||||
1 | |||||||||
---|---|---|---|---|---|---|---|---|---|
运行在以下环境 | |||||||||
应用 | dfinity | candid | * | From (including) 0.9.0 | Up to (excluding) 0.9.10 |
- 攻击路径 本地
- 攻击复杂度 复杂
- 权限要求 普通权限
- 影响范围 越权影响
- EXP成熟度 未验证
- 补丁情况 官方补丁
- 数据保密性 无影响
- 数据完整性 无影响
- 服务器危害 无影响
- 全网数量 N/A
CWE-ID | 漏洞类型 |
CWE-835 | 不可达退出条件的循环(无限循环) |
Exp相关链接

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