BlockSec Phalcon发布的最新分析报告指出,Aztec网络近期发生的漏洞事件并非源于访问控制的缺失,而是源于RollupProcessorV3合约中关键变量”numRealTxs”与ZK证明验证逻辑的不一致。攻击者通过利用该漏洞,成功绕过资产存储与提取的安全检查,最终获取未背书的资产余额。
具体来说,该漏洞的核心在于RollupProcessorV3在处理交易时,会将编码后的原始交易数据(encodedInnerTxData)中的所有交易条目解码并插入到rollup的默克尔树中。然而,L1结算机制仅会验证前numRealTxs个解码槽位的交易。攻击者借助这一机制漏洞,故意将真实存款交易放置在后续槽位,同时将numRealTxs参数设置为较小值,从而绕过decreasePendingDepositBalance等关键校验逻辑。通过这种手段,攻击者成功创建了多个不同资产的未背书余额,并随后通过正常提现流程获取资金。
事件中,攻击者在单笔交易中同时操作多个资产类型,创建了多个未背书的资产余额。事件发生后,Aztec Connect协议于2024年3月31日已正式停止运行,但RollupProcessorV3合约于4月10日仍进行了未经外部审计的版本升级,这可能成为漏洞被发现的关键时机。