Abracadabra $1.8m 黑客攻击重现早期分叉缺陷,Hacken 揭示

去中心化金融协议 Abracadabra 在攻击者利用其批量功能中的一个简单逻辑错误后损失了180万美元。Hacken的分析师表示,攻击者已经通过Tornado Cash 洗钱。

摘要

  • Abracadabra 在攻击者利用其批处理函数中的一个简单逻辑错误后损失了近 $2 百万,与几天前对一个分叉项目的攻击类似。
  • 攻击者绕过了一个安全标志,该标志旨在检查借款人是否拥有足够的抵押品,并在一次性抽取了六个 Cauldron 后,将被盗的 MIM 兑换为 ETH,并通过 Tornado Cash 路由。
  • 这并不是Abracadabra的代码第一次受到攻击,但这一事件突显了一个小的未实现功能如何让黑客得以利用,即使在一个分叉中同样的缺陷是可见的。

在十月初,Abracadabra,一个去中心化金融借贷协议,允许人们使用存入的代币作为抵押借入其稳定币MIM,之前遭受过多次黑客攻击,这次再次损失了约180万美元,因为攻击者利用协议批处理功能中的一个简单逻辑错误,借款时没有提供任何抵押,与几天前一个分叉项目遭受攻击的方式相同,区块链安全公司Hacken的分析师在与crypto.news分享的研究报告中表示。

Abracadabra作为一种方式推出,使人们能够使用带息代币作为抵押,并借入一种名为Magic Internet Money或MIM的美元挂钩代币。该系统围绕两个部分构建:Cauldrons,处理借贷规则,和DegenBox,共享的金库,实际持有代币。简而言之:你在Cauldron中提供抵押,而DegenBox在后台跟踪资金。

出错的简短版本是:一个本应强制进行最终检查以确认借款人实际上拥有抵押品的安全标志在一次交易中被关闭。正如Hacken的报告所述,攻击者“利用了Abracadabra的cook()函数中的逻辑缺陷,他们可以借用MIM代币,然后立即重置本应检查他们是否拥有足够抵押品的验证标志。”这允许在多个Cauldron中进行一次性、无抵押的借款。

在显微镜下

这里是流程的简单说明。Abracadabra 使用一个名为 cook() 的批处理功能,用户可以在一个交易中执行多个操作。比如,同时存入抵押品和借款。其中一个操作,比如 "借款" 步骤,会将一个名为 needsSolvencyCheck 的标志设置为 true,意思是 "在这笔交易结束时,检查借款人是否安全。"

Abracadabra $1.8m 黑客攻击重复了早期的分叉缺陷,Hacken 揭示了 - 1易受攻击的大锅之一 |来源: Hacken但是另一个可以在同一批处理中运行的作称为“_additionalCookAction(...)正如 Hacken 指出的那样,该函数被声明为 “virtual” 并且从未实现,因此默认情况下,它返回一个空对象,其中所有内容都设置为 false,包括 needsSolvencyCheck 标志。

因此,攻击者调用了借款操作,然后调用了重置标志的违约操作,最后,协议从未检查过偿付能力。

分析师表示,攻击者一次性攻击了六个Cauldron,获取了大约1.79百万MIM并将其兑换为ETH。攻击者利用了漏洞,系统地经过六个不同的Cauldron,并“使用相同的技术和专用的烹饪函数调用”耗尽了每一个,分析师解释道。

Abracadabra $1.8m黑客攻击重复了早期的分叉漏洞,Hacken揭示 - 2来自Abracadabra黑客攻击的洗钱资金 | 来源: Hacken在交换后,攻击者通过Tornado Cash,一个加密混合协议,转移资金,每次大约10 ETH,在接下来的24小时内逐渐发送。

而这并不是Abracadabra的CauldronV4代码第一次卷入麻烦。今年早些时候的其他事件使用了同一类合约中的不同边缘案例。现在有趣的是分叉部署反应得多么迅速。

根据报告,一个名为 Synnax 的分叉在 Abracadabra 漏水前的几天内暂停或取消了其 DegenBox 上的 CauldronV4 主合约,因此基本上该分叉团队在发现相同的弱点模式后拉响了紧急制动,这表明风险对监视代码的团队是可见的,如果没有修复的话。

ETH-1.74%
查看原文
此页面可能包含第三方内容,仅供参考(非陈述/保证),不应被视为 Gate 认可其观点表述,也不得被视为财务或专业建议。详见声明
  • 赞赏
  • 评论
  • 转发
  • 分享
评论
0/400
暂无评论
交易,随时随地
qrCode
扫码下载 Gate App
社群列表
简体中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)