区块链安全公司 BlockSec 发布了一份技术分析报告,分析了针对两个去中心化金融协议的攻击,这些攻击造成了超过 1700 万美元的损失。
去中心化交易所聚合商 SwapNet 在以太坊、 Arbitrum、Base 和币安智能链上遭受了超过 1340 万美元的损失,而管理集中流动性头寸的 Aperture Finance 在同时发生但无关的事件中估计损失了 367 万美元。
BlockSec 在其对 X 的分析摘要中指出:“由于输入验证不足,受害合约暴露了任意调用能力,攻击者可以利用现有的代币批准并调用 transferFrom 来窃取资产。”
该安全公司表示:“这些事件提醒我们,合同设计的灵活性必须与严格的调用限制之间取得平衡,尤其是在外部审查有限的闭源系统中。”
SwapNet漏洞背后究竟隐藏着什么?
在 SwapNet 案例中,漏洞来自函数 0x87395540(),该函数对关键输入缺乏适当的验证。
攻击者通过将预期的路由器或资金池地址替换为USDC等代币地址,诱骗受害合约将代币视为有效的执行目标。
这导致攻击者控制的调用数据执行低级调用,使受害合约能够执行允许攻击者窃取所有已批准资产的调用。
该漏洞影响了 DeFi 交易所元聚合器 Matcha Meta 的用户,这些用户禁用了平台的“一次性批准”设置,并直接向 SwapNet 合约授予了无限批准。
单笔损失最大的是一位用户,损失金额约为1334 万美元。总共有 20 位用户受到影响。攻击始于 Base 区块链的第 41289829 个区块,导致 SwapNet 在检测到初始漏洞 45 分钟后暂停了 Base 区块链上的合约。随后不久,SwapNet 也暂停了其他链上的合约;然而,在此期间,又有 13 位用户在三条链上受到影响。
Aperture Finance也遭遇了类似的困境。
代表用户管理Uniswap V3 流动性头寸的 Aperture Finance 也受到了其函数 0x67b34120() 中同类漏洞的侵害。
当调用此函数时,内部函数 0x1d33() 使用用户提供的调用数据执行底层调用,而不对调用目标或函数选择器强制执行严格的约束。
这使得攻击者能够构建恶意调用数据,窃取 ERC-20 代币以及Uniswap V3 认可的 NFT。
此次攻击的目标是那些已授权使用“即时流动性管理”功能的用户。
在一次典型的以太坊攻击中,攻击者创建了一个合约,仅用 100 wei 的ETH就调用了存在漏洞的函数。在将原生代币封装成 WETH 后,恶意调用了 WBTC.transferFrom() 函数,攻击者通过指定自定义的交换输出值,绕过余额检查,从而窃取已获批准的代币。
受影响的平台正在进行哪些更改?
这些事件促使两种协议重新评估其安全策略。首先,两种协议都要求用户使用 Revoke.cash 等工具撤销授权。
Matcha Meta 表示,已禁用允许用户关闭一次性审批功能的开关。同时,该公司已将 SwapNet 从其平台移除,直至另行通知。该公司还表示:“我们绝不会为了追求自定义功能而牺牲安全性。”
Aperture Finance公司表示,已禁用所有受影响的Web应用程序功能。关于追回资金的工作,该公司表示:“我们正与顶尖的取证安全公司密切合作,并与执法部门协调追查资金流向。”同时,该公司还表示,正在建立渠道协商资金返还事宜。




