区块见闻 区块见闻
Ctrl+D收藏区块见闻
首页 > Filecoin > 正文

EFI:技术拆解YFValue合约漏洞,一行代码如何锁定上亿美元?_区块链

作者:

时间:

编者按:本文来自慢雾科技,Odaily星球日报授权转载。前言

据链闻消息,DeFi项目YFValue发布公告称,团队于昨日在YFV质押池中发现一个漏洞,恶意参与者借此漏洞对质押中的YFV计时器单独重置。目前已有一个恶意参与者正试图借此勒索团队。慢雾安全团队对此进行了深入分析,以下是相关技术细节。细节分析

以上是YFValue的官方说明(来源:https://medium.com/),从声明中我们可以得知是YFV抵押池出现了问题,恶意的用户可重置YFV抵押者的计时器,对YFV的抵押者造成不便,但这并不会导致资金损失。通过登陆YFValue的官方网站,(https://yfv.finance/staking),可以发现在YFValue的体系中,用户可通过质押相关的代币获取对应的奖励,目前YFValue支持的质押代币池有以下几个:

发改委:推动区块链、人工智能等新一代信息技术在政务服务领域的应用:11月10日消息,国家发展改革委印发长三角国际一流营商环境建设三年行动方案。其中提出,提升外商投资和对外投资服务水平。深入实施外资准入前国民待遇加负面清单管理制度,落实好全国和自由贸易试验区外资准入负面清单。完善外商投资促进机制,进一步做好安商稳商、招商引资工作。技术赋能助力政务数据共享开放。推动区块链、人工 智能、大数据、物联网等新一代信息技术在政务服务领域的应用。[2022/11/10 12:43:04]

可以看到,目前由于漏洞的原因,YFV的抵押池已经在UI界面关闭了抵押功能,但是合约上目前还没关闭代币抵押的功能,我们需要跟踪代码来分析具体的细节点。根据官网提供的Github地址,我们溯源到了相关的代码仓库(https://github.com/yfv-finance/audit),关于YFV抵押的相关逻辑在YFV_Stake.sol合约中,合约中关于抵押的函数有2个,分别是stake函数和stakeOnBehalf函数,以下是具体的代码:

动态 | 永福股份:跟进区块链等新技术,积极发展新兴业态:永福股份(300712.SZ)在互动平台回复投资者时表示,公司依托丰富的电力行业专业技术积累,积极跟进电力能源领域信息化、物联网、人工智能、互联网、区块链的新技术,组建了科技创新、数字化技术、信息化等研发中心,创新商业模式,积极发展新兴业态。[2020/1/15]

通过代码不难发现,无论是stake函数还是stakeOnBehalf函数,逻辑基本是一样的,首先是校验了抵押金额不能为0,接着分别调用上层的tokenStake和tokenStakeOnBehalf函数。紧接着更新用户的抵押时间。只不过stakeOnBehalf函数可以用于为他人抵押。tokenStake和tokenStakeOnBehalf的代码如下:

声音 | 人民网总编辑罗华:人民网将结合区块链、物联网等技术应用至新闻领域:据人民网消息,9月21日,人民网联合武汉市经信局在武汉东湖国际会议中心举办了“5G应用武汉峰会”。人民网总编辑罗华表示,未来,人民网会将5G,结合大数据、云计算、区块链、物联网、人工智能等最新技术,应用到新闻采集、生产、分发、接收、反馈中,为广大网民提供高效快捷的可视化内容生产工具和传播平台,全面提升舆论引导能力和正能量传播效能,满足人们日益增长的对优质精神产品的需要。[2019/9/22]

可以看到这里只是简单的把对应的token用transferFrom的方式转入到合约中,没有什么特别的逻辑点。到这里整个抵押流程就很清晰了,接下来是收益的过程。计算用户收益的是stakeReward函数,领取收益的为withdraw函数,代码分别如下:

声音 | 陈晓华:区块链技术正在推进新一轮的商业模式变革:据凤凰网消息,北邮在线数字经济研究院院长陈晓华教授认为,区块链技术演进已经进入3.0阶段,在这个过程中,区块链不等于数字货币,而是正在虚脱向实,是真正地应用到行业当中来解决行业的痛点问题,并正在演进为新业态、新生态。区块链技术正在推进新一轮的商业模式变革,它将成为推进我国经济发展和金融发展的新动能。[2018/11/19]

通过分析计算收益和领取收益的代码,发现逻辑也很简单,stake函数首先是通过updateReward修饰器更新了用户的奖励,然后使用getReward函数计算了用户的奖励,并把抵押时间设置成当前区块时间。最后,用户在提取奖励的时候,withdraw函数会首先计算当前的区块时间,再与unfrozenStakeTime函数中计算出的时间进行对比,只有当前区块时间大于unfrozenStakeTime计算出的时间,才允许提现。unfrozenStakeTime的代码如下:

从代码中得知,unfrozenStakeTime是使用用户的上次抵押时间加上FROZEN_STAKING_TIME常量得出锁定时间,只要超过时间,就能通过withdraw函数提现收益。整个抵押和领取收益的简化流程如下:

分析了一大堆,回到我们最初的问题,恶意的用户是怎么锁定其他用户的资产的呢?回到用户抵押的逻辑,可以发现抵押逻辑中的stakeOnBehalf函数本意是帮助进行抵押,但是这里有个问题,如果这个用户先前已经有抵押了呢?那通过对已经抵押的用户再次进行抵押,比方说抵押1个YFV,是不是就能以极低的成本重置已抵押的用户的计时器,导致用户在withdraw时无法成功调用。更进一步,假设YFV抵押用户已经成功调用了stakeReward函数,在快要达到unfrozenStakeTime所规定的时间时,恶意的用户可以通过stakeOnBehalf函数给这个用户抵押少量资产,即可再次对抵押奖励进行锁定,理论上这样往复循环,即可使用户无法取出自己的资产,但这个问题并不会导致资金损失。攻击流程如下:

前车之鉴

这是本月出现的第二个没有经过审计的DeFi项目所暴露出的风险,根据YFValue的官方声明(https://medium.com/),项目代码是由富有经验的开发者进行开发的,同时借鉴了其他成功的项目的代码,但是仍无可避免的出现了风险。术业有专攻,安全审计一方面需要项目方的正向思维,另一方面,还是需要专业的安全团队的逆向思维,从专业的黑客角度进行模拟对抗,发现问题。修复方案

通过分析代码和漏洞细节,针对本次漏洞,修复方案也很简单,只要在抵押的时候检查用户的抵押状态是否为已经抵押,如果已经抵押,则不允许再次抵押。或者对每次的抵押进行单独的处理,不能对先前的抵押状态产生影响。

标签:EFIDEFI区块链NSTAlchemist DeFi AurumWDEFI区块链挣钱是真的假的NSTE

Filecoin热门资讯
EFI:对话:合格投资人门槛降低?我们和资深投资人聊了聊SEC的新规_BuckSwap

就在上周的8月26日,美国证监会SEC出台新规。其中最重要的,就是新的《证券法》修改了对于「合格投资人」的定义.

HER:从ENS看以太坊钱包的发展趋势_THE

编者按:本文来自加密谷Live,作者:Makoto_Inoue,翻译:Olivia,Odaily星球日报经授权转载.

ENS:DeFi矿币腰斩再腰斩,为啥他们还在乐此不疲的“耕种”?_THERADIO

编者按:本文来自风火轮社区,作者:佩佩,Odaily星球日报经授权转载。流动性挖矿会长期存在,只是这么多swap是不是能长期存在,这是一个问题.

USHI:Sushiswap:Uniswap的进化?_SUSHI

编者按:本文来自蓝狐笔记,Odaily星球日报经授权转载。在DeFi领域,DEX是第一大阵地。目前Uniswap、Balancer、Curve三驾马车位居三甲,此外,还有十多个DEX日交易额也超.

SHI:寿司大厨Sushiswap挥刀Uniswap背后:或将消灭传统VC_sushi币值得长期持有吗

朋友们,想要了解最近大火的DeFi项目「寿司」Sushiswap吗?不过在此之前,你必须先理解Uniswap。Uniswap是一个去中心化交易所,当然,你也可以把它看做是一个自动存取款机.

COI:Filecoin测试网终上线,最终会被证伪吗?_fil币价格今日行情英为财情

今天凌晨,Filecoin官方宣布已启动测试网奖励计划,一直跳票推迟上线的Filecoin总算有了具体的消息.