Vyper 对于包含大型阵列的合约的存储布局不正确 (CVE-2023-46247)
CVE编号
CVE-2023-46247利用情况
暂无补丁情况
N/A披露时间
2023-12-14漏洞描述
Vyper是用于以太坊虚拟机(EVM)的Pythonic智能合约语言。包含大型数组的合约可能会通过1个槽位进行不正确的分配。在v0.3.8之前,确定存储变量需要的槽数的计算使用`math.ceil(type_.size_in_bytes / 32)`。如果IEEE-754尾数中设置了足够多的位,中间的浮点步骤可能会产生舍入误差。粗略地说,如果`type_.size_in_bytes`很大(>2**46),并且稍微小于2的某个幂,计算可能会高估所需的槽数量1个。如果`type_.size_in_bytes`稍微大于某个幂,计算可能会低估所需的槽数量1个。此问题在0.3.8版本中得到修复。解决建议
建议您更新当前系统或软件至最新版,完成漏洞的修复。- 攻击路径 网络
- 攻击复杂度 低
- 权限要求 无
- 影响范围 未更改
- 用户交互 无
- 可用性 无
- 保密性 无
- 完整性 高
CWE-ID | 漏洞类型 |
CWE-193 | Off-by-one错误 |
CWE-682 | 数值计算不正确 |
Exp相关链接

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