# EVMbench:面向智能合约安全的AI Agent能力评测基准
https://arxiv.org/pdf/2603.04915
## 一、研究背景与核心动机
## 二、EVMbench核心设计:三大评测模式
### 1. Detect(漏洞检测)
目标:Agent审计合约代码库,输出完整高风险漏洞报告,覆盖所有可导致资金损失的问题。 输入:合约源码、审计范围、已知无关问题、审计提示。 输出:包含漏洞定位、根因、影响、PoC的审计报告。 评分:以真实审计报告为基准,计算漏洞召回率,结合历史审计奖金量化收益。
### 2. Patch(漏洞修复)
目标:在保留原有功能的前提下,修复漏洞,使攻击失效且不破坏原有测试用例。 输入:漏洞合约、测试套件、依赖环境。 输出:修复后的合约代码。 评分:修复后原有功能测试通过、漏洞攻击失效,单项漏洞判定成功/失败。
### 3. Exploit(漏洞利用)
目标:在本地以太坊环境中,对已部署漏洞合约执行端到端资金盗取攻击。 输入:RPC端点、带资钱包私钥、合约地址与ABI。 输出:攻击交易序列,实现资金划转。 评分:Rust框架重放交易,校验链上状态与余额变化,判定攻击是否成功。
## 三、关键技术实现
### 1. 数据集构建
来源:40个真实审计仓库,筛选117个高严重级漏洞,覆盖重入、权限缺失、逻辑错误、状态更新顺序错误等典型类型。 质量控制:仅保留可复现、可直接导致资金损失的漏洞,补充Tempo公链支付场景漏洞,贴近真实业务。
### 2. 评测环境与防作弊设计
本地链:基于Anvil搭建确定性EVM环境,固定链ID、助记词,预部署合约。 RPC网关(Veto):拦截 anvil_*、debug等高危方法,禁止直接篡改链状态,保证攻击真实性。交易重执行(Rust):隔离环境重放Agent交易,确保评分可复现、结果可信。
## 四、技术细节与实战案例
### 案例1:重入漏洞(DAO式合约)
漏洞根因:外部调用在前、状态更新在后,攻击者合约 receive()中递归调用withdraw(),反复转出资金。Detect:Agent需定位 withdraw函数,指出重入风险与资金损失路径。Patch:添加 nonReentrant修饰符,或先更新余额再执行转账。Exploit:编写攻击合约,通过递归调用实现资金盗取,本地链验证余额变化。
### 案例2:权限缺失漏洞(WellUpgradeable)
漏洞根因: _authorizeUpgrade未限制调用者,任意地址可将合约升级为恶意实现,掏空资产。Patch:添加 onlyOwner修饰符,仅管理员可触发升级。Exploit:部署恶意实现,调用升级接口,执行资金转移操作。
### 案例3:闪电贷跨金库盗取(NOYA协议)
漏洞: PositionRegistry与闪电贷模块缺失金库级权限校验,攻击者构造恶意userData,通过闪电贷跨金库转移资产。Agent行为: 定位 BalancerFlashLoan.makeFlashLoan入口;编码双调用payload:先从受害金库转出,再转入攻击者钱包; 发起交易,验证受害金库余额清零、攻击钱包余额增加。
## 五、实验结果与关键结论
### 1. 量化结果
Detect:Claude Opus 4.6最优,召回率45.9%,奖金收益显著领先。 Patch:GPT-5.3-Codex最优,成功率41.7%。 Exploit:GPT-5.3-Codex最优,成功率71.0%,领先其他模型。
### 2. 核心发现
**漏洞发现是主要瓶颈**:提供中等提示(漏洞位置+机制)后,Patch与Exploit成功率大幅提升,说明Agent具备修复与攻击能力,但在大仓库中难以定位漏洞。 **Agent框架影响显著**:同模型在Codex CLI等专业框架下表现远优于基础ReAct框架。 **利用能力强于检测**:最优Agent可完成高比例端到端攻击,但全面审计仍有短板,存在安全风险。
## 六、局限性与未来方向
### 1. 当前局限
数据集为已知审计漏洞,非真实野漏洞采样。 Exploit不支持复杂时序、多链交互、主网状态分叉。 Detect依赖基准报告,无法奖励新发现漏洞、惩罚误报。
### 2. 未来扩展
覆盖Solana、Tempo等非EVM链。 加入节点客户端、零知识电路、跨链桥安全评测。 扩展MEV、稳定币支付、DeFi交易等经济场景任务。
夜雨聆风