CVE-2024-24563
— 神龙十问 AI 深度分析摘要
CVSS 9.8 · Critical
本页是神龙十问 AI 深度分析的
摘要版。完整版(更长回答、追问、相关漏洞)需
登录查看 →
Q1这个漏洞是什么?(本质+后果)
🚨 **本质**:Vyper编译器允许**有符号整数**作为数组索引。
💥 **后果**:类型检查器未拦截负数或越界值,直接导致**拒绝服务 (DoS)**,合约可能崩溃或陷入无限循环。
Q2根本原因?(CWE/缺陷点)
🔍 **CWE**:CWE-129 (Improper Validation of Array Index)。
📍 **缺陷点**:编译器在**类型检查阶段**和**代码生成阶段**,未对数组索引进行严格的**非负性**及**范围**校验。
Q3影响谁?(版本/组件)
📦 **组件**:Vyper (EVM Pythonic 智能合约语言)。
📅 **版本**:**0.3.10 及之前版本**。
🏢 **厂商**:vyperlang。
Q4黑客能干啥?(权限/数据)
👮 **权限**:无需特殊权限,攻击者可通过调用合约触发。
📊 **数据**:主要影响**可用性**,导致服务不可用(DoS),可能间接影响数据完整性或造成Gas费浪费。
Q5利用门槛高吗?(认证/配置)
🚪 **门槛**:**低**。
🔑 **认证**:无需认证 (PR:N)。
🌐 **访问**:网络远程 (AV:N)。
⚙️ **复杂度**:低 (AC:L),利用简单。
Q6有现成Exp吗?(PoC/在野利用)
🧪 **Exp**:数据中 **pocs** 字段为空,暂无公开 PoC。
🌍 **在野**:无明确在野利用报告,但鉴于 CVSS 评分高,需警惕潜在利用。
Q7怎么自查?(特征/扫描)
🔎 **自查**:检查 Vyper 源码中数组访问逻辑。
📝 **特征**:查找使用**有符号整数**变量作为数组下标的代码片段。
🛠️ **工具**:使用静态分析工具扫描 Vyper 代码,关注 `subscriptable.py` 和 `codegen/core.py` 相关逻辑。
Q8官方修了吗?(补丁/缓解)
🛡️ **补丁**:官方已发布安全公告 (GHSA-52xq-j7v9-v4v2)。
📌 **修复**:升级至 **0.3.11+** 版本(隐含修复,因漏洞存在于 0.3.10 及之前)。
Q9没补丁咋办?(临时规避)
⚠️ **规避**:
1. **代码审查**:手动确保数组索引始终为**非负整数**。
2. **输入验证**:在合约入口处对索引参数进行 `assert index >= 0` 检查。
3. **避免升级**:暂时不要使用受影响版本部署新合约。
Q10急不急?(优先级建议)
🔥 **优先级**:**高**。
📈 **CVSS**:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H (严重)。
💡 **建议**:立即升级编译器版本或重构代码,避免合约被恶意 DoS。