PeckShield揭示Opyn智能合约漏洞:攻击者的出其不意之举

OKX欧易app

OKX欧易app

欧易交易所app是全球排名第一的虚拟货币交易所,注册领取6万元盲盒礼包!

APP下载   官网注册
北京时间2020年08月05日,DeFi期权平台Opyn的看跌期权(OpynETHPut)智能合约遭到黑客攻击,损失约37万美元。

Opyn是一个通用期权协议,于今年2月份转型为保险平台,通过oTokens为DeFi平台提供可交易的ETH看跌期权,以此锚定ETH市场价格,为高波动性的DeFi市场提供相对的稳定性。

PeckShield安全团队获悉Opyn平台遭受攻击后,迅速定位到问题关键点在于:攻击者发现Opyn智能合约行权(exercise)接口对接收到的ETH存在某些处理缺陷,其合约并没有对交易者的实时交易额进行检验,使得攻击者可以在一笔对自己发起真实的交易之后,再插入一笔伪装交易骗得卖方所抵押的数字资产,进而实现空手套白狼。

简单来说,由于OpynETHPut智能合约中的行权函数exercise没有对交易者的ETH进行实时校验。根据Opyn平台的业务逻辑,看跌期权的买方给卖方转移相应价值的ETH,即可获得卖方抵押的数字资产。狡猾的攻击者,先向自己发起伪装的交易,利用这笔ETH可以重复使用的特性,再次向卖方用户发起转账,进而骗取卖方已经抵押的数字资产。

下面为您详细分析漏洞原因及攻击过程。

漏洞详细过程分析

先来说说,Opyn平台的业务逻辑:当用户使用Opyn合约行权即买卖期货(exercise)时,需要买方向卖方转入相应数量的ETH或者ERC20Token,然后合约将销毁买方对应的oToken,而后买方将获得卖方已经抵押的资产。

例如:小王认为行情进入了下跌趋势,看到Opyn上挂着一个小李对ETH330美元的看跌期权,于是进入交易系统,向小李转账一个ETH,获得小李抵押的等额数字资产。若此刻行情已经跌至了300美元,小王便可获得其中的差价。

图1.exercise函数中循环执行传入的vaults地址列表

如上面的合约代码片段所示,行权函数exercise的内部是一个循环,依据参数中传递的vaultsToExerciseFrom中的地址数量依次调用真正的行权逻辑_exercise函数。

图2.重用传入合约的ETH来获得抵押资产

函数处理ERC20Token时,和大部分的DeFi项目做法一样,使用transferFrom,如代码1882行所示,从msg.sender转账到address(this)。

但是当函数处理的资产为ETH时,处理的方式就完全不一样了。因为在Solidity中,msg.value的意思是合约调用者在调用具有payable接口时所转给该合约的ETH数量,仅是一个量值,所以在合约代码的1879行中,检查msg.value==amtUnderlyingToPay仅能确保合约确实收到了amtUnderlyingToPay数量的ETH,并不会对msg.value的值造成任何影响。

但是正如上面讲到的在exercise中会循环调用_exercise函数,这导致尽管合约实际只收到一次ETH,然而在循环过程中却可以重复使用。

攻击点就在这里,由于合约少了一步对ETH实时数量的检验,使得攻击者可以先伪造一笔指向自己的交易,然后再把已经花掉的本金再次利用,和平台其他用户完成一笔正常交易。

图3.攻击交易分析

在图3中,我们通过Bloxy浏览器显示的调用过程来展示攻击的过程。由于攻击者吃掉了很多笔订单,我们以其中一笔交易为例,向大家展示其攻击逻辑:

1、攻击者先从Uniswap购入了75oETH为进一步调用函数行权做好筹备;2、攻击者创建了一个Vault地址,并且抵押24,750USDC铸造出75oETH,但并未卖出这些期权,等于自己同时买入了以330的价格卖出75ETH的权利;3、攻击者在Opyn合约中调用了exercise,在持有150oETH看空期权的情况下,先向自己的Vault地址转入了75个ETH,获得自己事先抵押的24,750个USDC,再重利用了这75个ETH,成功吃掉了另一个用户的24,750个USDC,进而实现非法获利。

修复建议

PeckShield安全团队建议,在Solidity中,合约可使用一个局部变量msgValue来保存所收到ETH(即msg.value的值)。这样,在后续的步骤中通过操作msgValue,就能准确的标记有多少ETH已经被花费,进而避免资产被重复利用。此外,我们还可以使用address(this).balance来检查合约余额来规避msg.value被重复使用的风险。

本文来自用户投稿,不代表币大大立场,如若转载,请注明出处:https://czxurui.com/zx/53714.html

上一篇 2023年08月12日
下一篇 2023年08月12日

相关推荐

  • 欧易置换合约,加密资产灵活管理的创新工具

    欧易置换合约,加密资产灵活管理的创新工具 在加密货币市场高速发展的今天,投资者对资产管理的灵活性与效率提出了更高要求,欧易(OKX)推出的置换合约,凭借其创新的交易机制,为用户提供了全新的资产配置方案,逐渐成为加密交易者的重要工具。 与传统合约不同,欧易置换合约

    2026-11-11 06:10:01
    7 0
  • 欧艺Web3合约返佣比例调整,新机遇与新挑战并存

    欧艺Web3合约返佣比例调整,新机遇与新挑战并存 Web3内容创作与分发平台欧艺(OY)官方宣布,将对旗下合约体系的返佣比例进行一次重要调整,这一消息在Web3社区和内容创作者中迅速引发了广泛关注和热烈讨论,此次调整不仅关系到现有创作者的直接收益,更被视为欧艺平台发展战

    2026-11-11 02:10:01
    9 0
  • 易欧合约玩法介绍,新手也能上手的衍生品交易指南

    易欧合约玩法介绍,新手也能上手的衍生品交易指南 在全球化投资浪潮下,衍生品交易因其灵活性和高收益潜力受到越来越多投资者关注。“易欧合约”作为近年来兴起的一种创新型金融衍生品,凭借简单直观的规则和低门槛特性,成为新手入门和专业投资者优化资产配置的新选择,本文

    2026-11-10 16:10:01
    9 0
  • 欧易合约冷静期怎么设置?新手必看的风险控制指南

    欧易合约冷静期怎么设置?新手必看的风险控制指南 在加密货币合约交易中,情绪化决策往往是导致亏损的主因,欧易(OKX)为帮助用户理性交易,推出了“合约冷静期”功能,允许用户在开仓后设置一段强制等待时间,避免因市场短期波动或追涨杀跌做出冲动操作,这一功能具体如何设

    2026-11-10 06:10:02
    9 0
  • 探索以太坊合约开发,机遇、挑战与必备指南

    探索以太坊合约开发,机遇、挑战与必备指南 在区块链技术浪潮中,以太坊(Ethereum)作为智能合约平台的先驱和领军者,吸引了无数开发者和创业者的目光。“做以太坊合约怎么样?”这个问题,不仅是对一项技能的好奇,更是对一个充满机遇与挑战的新领域的探索,本文将从多个维度

    2026-11-09 00:10:02
    12 0
  • 欧艺合约赚上亿是真的吗?理性看待财富神话的背后

    欧艺合约赚上亿是真的吗?理性看待财富神话的背后 “欧艺合约赚上亿”的说法在部分投资社群中引发热议,不少网友对其真实性提出质疑,这类“高收益合约”宣传往往暗藏多重风险,投资者需保持清醒认知,避免陷入财富陷阱。 从公开信息检索来看,“欧艺合约”并未在正规金融监管

    2026-11-08 16:10:01
    9 0

发表回复

8206

评论列表(0条)

    暂无评论

binance币安交易所
已有2000万用户加入币安交易所

立即下载