SharkTeam:ERC2771 & Multicall任意地址欺骗漏洞原理分析

Odaily星球日报Publié le 2023-12-11Dernière mise à jour le 2023-12-11

Résumé

OpenZeppelin项目漏洞解析。

2023 年 12 月 8 日,OpenZeppelin 官方向社区发布了一则重要的安全警报。警报指出,在项目集成中使用 ERC-2771 标准与类 Multicall 方式时,可能存在任意地址欺骗攻击的风险。

SharkTeam 对此事件第一时间进行了技术分析,并总结了安全防范手段,希望后续项目可以引以为戒,共筑区块链行业的安全防线。

一、攻击交易分析

由于存在一系列与该漏洞相关的攻击交易,我们选择其中一笔攻击交易进行分析。

攻击者地址:
0xFDe0d1575Ed8E06FBf36256bcdfA1F359281455A

攻击交易:
0xecdd111a60debfadc6533de30fb7f55dc5ceed01dfadd30e4a7ebdb416d2f6b6

攻击流程:

1.首先。攻击者(0xFDe0d157)先利用 5 枚 WETH 兑换了约 3, 455, 399, 346 枚 TIME。
SharkTeam:ERC2771 & Multicall任意地址欺骗漏洞原理分析

2.随后,攻击者(0xFDe0d157)构建了恶意的 calldata 参数并调用了[Forwarder].execute 函数。

3.在调用[Forwarder].execute 函数时,恶意的 calldata 触发了 TIME 合约的 multicall 函数。随后,使用剩余的 calldata 触发执行 TIME 合约的 burn 函数,销毁池中的 TIME 代币。
SharkTeam:ERC2771 & Multicall任意地址欺骗漏洞原理分析

二、漏洞分析

首先,此次攻击事件主要涉及几个方面:ERC 2771、Multicall、经过精心构造的 calldata。我们可以从 TIME 代币合约中找到相关的继承:
SharkTeam:ERC2771 & Multicall任意地址欺骗漏洞原理分析

1.ERC 2771 提供了拥有虚拟的 msg.sender 的能力,允许用户委托第三方[Forwarder]执行交易,用来降低 gas 成本。提交交易时,msg.sender 地址会被添加到 calldata 中。

2.TIME 代币合约继承了 ERC2771Context。当[Forwarder]调用合约时,_msgSender() 会检查 calldata 数据,并将其右移,截断最后的 20 个字节作为预期的 msg.sender。
SharkTeam:ERC2771 & Multicall任意地址欺骗漏洞原理分析

3.Multicall 是一种将单个函数调用转变为在同一个合约中按顺序调用多个函数的方法。它接受一个用户编码调用的数组并对其自身合约执行。这个函数遍历调用数组,并对每一个操作执行 delegatecall()。这允许用户组合自己的一系列操作,并在同一笔交易中顺序执行,而无需在协议中预先定义好某些操作组合。它主要目的也是为了节省 gas。
SharkTeam:ERC2771 & Multicall任意地址欺骗漏洞原理分析

4.对于经过精心构造的 calldata,攻击者调用了 [Forwarder].execute 函数,并传入相关参数。
SharkTeam:ERC2771 & Multicall任意地址欺骗漏洞原理分析

我们对 data 值进行相应的可读格式化后得出:
SharkTeam:ERC2771 & Multicall任意地址欺骗漏洞原理分析

攻击者(0x FDe 0 d 157)通过对当前 calldata 的偏移操作获得新的 data 值,并将该值传递给 multicall(bytes[]) 函数。新 data 的前 4 个字节是 burn(uint 256) 函数的选择器,amount 参数为 62227259510000000000000000000。

5.在 multicall(bytes[])函数中,通过 delegatecall 调用 burn(uint 256)函数。在0x 20 这一行,0x760dc1e043d99394a10605b2fa08f123d60faf84 地址是在构造 calldata 时一开始添加在末尾的。该地址对应 Uniswap v2上的 TIME-ETH 流动性池,即前文提到的预期的 msg.sender。
SharkTeam:ERC2771 & Multicall任意地址欺骗漏洞原理分析

6.刚才提到的 msg.sender 为何变成 TIME-ETH 流动性池地址?原因是一开始 msg.sender 是[Forwarder]合约地址。为了判断是否是可信的[Forwarder],如果是可信的[Forwarder],则将 msg.sender 设置为 calldata 的最后 20 个字节。

三、安全建议

此次攻击事件的根本原因:在 ERC-2771 中,[Forwarder]并不是专为 multicall 设计。攻击者将_msgSender()函数中的相关参数添加到 multicall 的外部调用中,即本次事件的[Forwarder].execute 函数。在 multicall 函数中,一些函数也会附加_msgSender()中的相关参数,从而允许攻击者欺骗_msgSender()。因此,攻击者通过使用 multicall 调用相关函数,可以模仿任意地址的调用。最终,通过授权销毁池子里的 TIME 代币。

针对此事件,可采取以下缓解和防范措施:

1.使用修复 bug 后的新版本,OpenZeppelin 新版本的 Multicall 带有 ERC 277 1co ntext 数据的 context 后缀长度,用于标识 ERC-2771 预期的 context 后缀长度。因此,来自可信任[Forwarder]的任何 call 都将被识别并适应每个子函数 call。
SharkTeam:ERC2771 & Multicall任意地址欺骗漏洞原理分析

以下是 bug 版本和已更新版本的对比图:
SharkTeam:ERC2771 & Multicall任意地址欺骗漏洞原理分析

2.禁止任何合约调用 multicall 来防止[Forwarder]使用它,以 ThirdWeb 为例,该方法与 OpenZeppelin 的解决方案相比,OpenZeppelin 仍然允许通过合约进行 multicall。以下是 ThirdWeb 的相关 bug 版本和已更新版本的对比图。
SharkTeam:ERC2771 & Multicall任意地址欺骗漏洞原理分析

About Us

SharkTeam 的愿景是保护Web3世界的安全。团队由来自世界各地的经验丰富的安全专业人士和高级研究人员组成,精通区块链和智能合约底层理论。提供包括链上大数据分析、链上风险预警、智能合约审计、加密资产追讨等服务,并打造了链上大数据分析和风险预警平台 ChainAegis,平台支持无限层级的深度图分析,能有效对抗Web3世界的高级持续性威胁(Advanced Persistent Threat,APT)。已与Web3生态各领域的关键参与者,如 Polkadot、Moonbeam、polygon、SuiOKXimTokenChainIDE 等建立长期合作关系。

官网:https://www.sharkteam.org

Twitterhttps://twitter.com/sharkteamorg

Lectures associées

Un Trader de Bitcoin Affirme que les Sommets et les Creux des Cycles Correspondent à des Délais Exactement Identiques

Un trader utilisant le pseudonyme Ryan (@DodysDD) affirme avoir identifié une précision mathématique étonnante dans les cycles de prix du Bitcoin. Selon son analyse, les phases de marché haussier, du plus bas au plus haut (ATH), dureraient exactement 1064 jours, comme observé lors des cycles 2014-2017, 2018-2021 et 2022-2025. De même, les phases baissières (du pic au creux) correspondraient à 364 jours, comme en 2017-2018 et 2021-2022. Ce schéma, s'il se vérifiait, offrirait aux investisseurs un cadre temporel simple pour anticiper les tendances majeures. Cependant, l'article souligne les risques inhérents à ce type de théorie. La précision apparente dépend souvent du choix des points de référence (cours de clôture, sommets intradays...), ce qui peut conduire à une sélection biaisée des données. Il n'existe aucune preuve que le Bitcoin soit régi par un minutage aussi exact, son prix étant influencé par une multitude de facteurs (halvings, conditions macroéconomiques, psychologie des investisseurs...). Malgré ces limites, ce récit cyclique trouve un écho dans la communauté des traders, surtout dans un contexte actuel d'incertitude sur la phase de marché. Il fournit une narration simple face à la complexité. En conclusion, si l'observation sert de cadre d'analyse populaire, elle doit être abordée avec scepticisme et ne peut, à elle seule, prédire les futurs sommets ou creux du marché.

bitcoinistIl y a 2 h

Un Trader de Bitcoin Affirme que les Sommets et les Creux des Cycles Correspondent à des Délais Exactement Identiques

bitcoinistIl y a 2 h

94 billions, le plus grand financement de l'année pour les robots humanoïdes est apparu

Dans le secteur des robots humanoïdes, un tournant majeur est marqué par le financement record de 14 milliards de dollars (environ 94,9 milliards de yuans) levé par l'entreprise allemande Neura. Cette levée de fonds de série C, menée par des investisseurs industriels de renom comme Schaeffler et Bosch, ainsi que des géants technologiques (NVIDIA, Amazon), porte l'évaluation de Neura à environ 70 milliards de dollars. Cet investissement massif signale un changement profond : la filière passe d'une phase de démonstration technologique à une phase d'industrialisation et de déploiement concret en usine. Contrairement aux sociétés axées sur un robot humanoïde "universel" (comme Figure AI), Neura adopte une approche pragmatique, ciblant d'abord des applications industrielles verticales et spécifiques, comme en témoigne son partenariat avec BMW. La conjonction de plusieurs facteurs explique cet afflux de capitaux : les progrès de l'IA (modèles de grande taille) qui améliorent les capacités de perception et de décision des robots, et les pressions structurelles sur le marché du travail (vieillissement, pénurie de main-d'œuvre, coûts salariaux) qui créent une demande croissante dans la fabrication. Les principaux défis pour une adoption massive ne sont plus uniquement techniques. Ils concernent désormais les coûts d'adaptation aux lignes de production existantes, la formation des opérateurs et la mise en place d'un réseau de maintenance fiable. L'entrée en scène de capitaux industriels expérimentés démontre une confiance accrue dans la capacité du secteur à résoudre ces problèmes d'ingénierie et de modèle commercial, achevant ainsi la transition cruciale du laboratoire au sol de l'usine.

marsbitIl y a 7 h

94 billions, le plus grand financement de l'année pour les robots humanoïdes est apparu

marsbitIl y a 7 h

Le marché de la pré-introduction en bourse d'Anthropic chute après qu'une directive américaine force l'arrêt du modèle

Anthropic a annoncé avoir reçu une directive du gouvernement américain lui ordonnant de suspendre l'accès aux modèles Claude Fable 5 et Claude Mythos 5 pour les ressortissants étrangers, y compris ses propres employés étrangers. Cette mesure d'urgence, justifiée par des préoccupations de sécurité nationale liées au contrôle des exportations, a forcé la désactivation mondiale des deux modèles le 12 juin. Les autres modèles d'Anthropic, comme Claude Opus 4.8, restent opérationnels. La réaction du marché a été immédiate : le contrat perpétuel lié à Anthropic sur Hyperliquid a chuté de 3,7%, reflétant l'impact sur sa valorisation pré-IPO. Anthropic a contesté la base de cette directive, arguant que la vulnérabilité de "jailbreak" évoquée par le gouvernement était mineure, déjà connue et non exclusive à ses modèles. La société a averti qu'un tel seuil d'intervention, s'il était généralisé, pourrait stopper les déploiements de nouveaux modèles d'IA de pointe. Cet événement illustre comment la régulation de l'IA devient un facteur négociable sur les marchés financiers. Les instruments tokenisés et les contrats pré-IPO permettent désormais aux traders de réagir instantanément à ce type de nouvelles réglementaires, même en l'absence d'informations publiques détaillées. Cela intègre l'infrastructure d'IA dans une dynamique de marché spéculative similaire à celle de la cryptomonnaie, avec des risques de volatilité basée sur des informations incomplètes.

bitcoinistIl y a 12 h

Le marché de la pré-introduction en bourse d'Anthropic chute après qu'une directive américaine force l'arrêt du modèle

bitcoinistIl y a 12 h

Un portefeuille lié à une exploitation convertit des jetons volés en 18 510 ETH et 1 548 BNB

Un portefeuille lié à une exploitation a converti des actifs compromis en 18 510 ETH (évalués à environ 30,83 millions de dollars) et 1 548 BNB (environ 924 000 dollars), selon une alerte de suivi sur la chaîne partagée par WuBlockchain citant Lookonchain. L'attaquant, associé à des « jetons H » compromis, détient encore 111,36 millions de ces jetons d'une valeur d'environ 14 millions de dollars. Cette conversion vers des actifs plus liquides comme l'ETH et le BNB est une étape courante après une exploitation, souvent avant une tentative de retrait ou de mélange de fonds. Les grands échanges de ce type peuvent exercer une pression sur les liquidités, signaler les prochaines étapes de l'attaquant et offrir de nouvelles pistes de transaction à suivre pour les enquêteurs. Le suivi sur la chaîne, bien qu'utile pour visualiser les mouvements de fonds en temps réel, présente des limites : les portefeuilles peuvent fractionner les actifs rapidement, les déplacer entre différentes chaînes ou utiliser des adresses intermédiaires, compliquant le traçage. Les étiquettes attribuées aux portefeuilles peuvent également changer. Ces données représentent donc un instantané et non une estimation finale des pertes. Cet incident souligne l'utilité des comptes de surveillance sur la chaîne comme Lookonchain, qui peuvent révéler une activité avant la publication d'une enquête officielle. La conversion en actifs liquides rend également plus difficile et urgente toute tentative de récupération des fonds volés.

bitcoinistIl y a 15 h

Un portefeuille lié à une exploitation convertit des jetons volés en 18 510 ETH et 1 548 BNB

bitcoinistIl y a 15 h

Trading

Spot
Futures
活动图片