2022年6月27日,据慢雾区消息,XCarnival项目被曝出严重漏洞遭黑客攻击并盗走3,087个ETH。XCarnival是一个ETH链上的NFT借贷项目,目前项目团队正在修复漏洞并承诺会对受影响的用户提供解决方案。慢雾安全团队第一时间介入分析,并将结果分享如下:相关信息
核心合约地址P2Controller:0x34ca24ddcdaf00105a3bf10ba5aae67953178b85XNFT:0x39360AC1239a0b98Cb8076d4135d0F72B7fd9909xToken:0x5417da20aC8157Dd5c07230Cfc2b226fDCFc5663攻击者EOA地址0xb7cbb4d43f1e08327a90b32a8417688c9d0b800a攻击合约地址0xf70F691D30ce23786cfb3a1522CFD76D159AcA8d0x234e4B5FeC50646D1D4868331F29368fa92862380x7B5A2F7cd1cc4eEf1a75d473e1210509C55265d80xc45876C90530cF0EE936c93FDc8991534F8A6962漏洞核心点分析
三箭资本清算人寻求以3000万美元价格出售Su Zhu的游艇“Much Wow”:12月3日消息,加密对冲基金三箭资本 (3AC) 清算人表示,目前该基金在新加坡银行持有的3560万美元现金已经被没收,同时还设法从代币销售中追回数百万美元和数量不详的60种不同的加密代币和 NFT,并且希望法院批准可以3000万美元价格出售Su Zhu的游艇“Much Wow”。据此前Terra研究员FatMan披露,Su Zhu拥有的这艘游艇价值5000万美元,但三箭一直无法支付首付之外的费用。(彭博社)[2022/12/3 21:20:26]
1.攻击者通过XNFT合约中的pledgeAndBorrow函数来进行抵押NFT并借出xToken。
三箭资本律师:创始人Su Zhu和Kyle Davies目前下落不明:7月10日消息,据AssetDash发布的推文,三箭资本的律师称,三箭资本创始人Su Zhu和Kyle Davies已经逃离新加坡,目前下落不明。[2022/7/10 2:03:30]
在pledgeInternal函数中转入NFT并生成订单:
2.接着调用withdrawNFT函数提取出质押的NFT,其中首先判断该订单是否被清算状态,如果不是则判断该订单的状态是否为NFT还未被提取且借款金额为0,如果通过即可提取抵押的NFT。
Su Zhu:比特币暴跌主要是由合约交易所瀑布式清算所带动:加密货币对冲基金 Three Arrows Capital 首席执行官 Su Zhu在由Crypto Tonight举办的活动中对 3 月 12 日加密市场暴跌现象发表观点,他认为 3 月 12 日 市场的价格变动主要是受到 BitMEX 这样的永续掉期合约交易所瀑布式清算所带动的。他补充到,在 3 月 12 日之前,市场的多头已经过度杠杆化。因此,第一波下跌是自然的去杠杆化,期货趋于现货,而第二波下跌是全面投降。从 8000 美元跌到 3800 美元是大多数做市商没想到的。最重要的是,交易所有很多空头卖方,如 Deribit,OTC 也有 。随着市场进一步走低,这些卖空者争先恐后需要 delta 对冲。此外一些矿工还用 BTC 做抵押借了 USDT,这些贷款也必须偿还。总而言之,3 月 12 日是对市场的一个很好的提醒,要避免过度杠杆化,要保持审慎而不是贪婪。[2020/4/4]
慢雾:Cover协议被黑问题出在rewardWriteoff具体计算参数变化导致差值:2020年12月29日,慢雾安全团队对整个Cover协议被攻击流程进行了简要分析。
1.在Cover协议的Blacksmith合约中,用户可以通过deposit函数抵押BPT代币;
2.攻击者在第一次进行deposit-withdraw后将通过updatePool函数来更新池子,并使用accRewardsPerToken来记录累计奖励;
3.之后将通过_claimCoverRewards函数来分配奖励并使用rewardWriteoff参数进行记录;
4.在攻击者第一次withdraw后还留有一小部分的BPT进行抵押;
5.此时攻击者将第二次进行deposit,并通过claimRewards提取奖励;
6.问题出在rewardWriteoff的具体计算,在攻击者第二次进行deposit-claimRewards时取的Pool值定义为memory,此时memory中获取的Pool是攻击者第一次withdraw进行updatePool时更新的值;
7.由于memory中获取的Pool值是旧的,其对应记录的accRewardsPerToken也是旧的会赋值到miner;
8.之后再进行新的一次updatePool时,由于攻击者在第一次进行withdraw后池子中的lpTotal已经变小,所以最后获得的accRewardsPerToken将变大;
9.此时攻击者被赋值的accRewardsPerToken是旧的是一个较小值,在进行rewardWriteoff计算时获得的值也将偏小,但攻击者在进行claimRewards时用的却是池子更新后的accRewardsPerToken值;
10.因此在进行具体奖励计算时由于这个新旧参数之前差值,会导致计算出一个偏大的数值;
11.所以最后在根据计算结果给攻击者铸造奖励时就会额外铸造出更多的COVER代币,导致COVER代币增发。具体accRewardsPerToken参数差值变化如图所示。[2020/12/29 15:58:07]
3.以上为攻击前生成订单的准备操作,接着攻击者开始利用生成的订单直接调用xToken合约中的borrow函数进行借款。
在borrowInternal函数中,会外部调用controller合约中的borrowAllowed函数来判断是否可以借款。
可以看到在borrowAllowed函数会调用orderAllowed函数进行订单相关信息的判断,但是在这两个函数中均没有进行_order.isWithdraw状态的判断。因此攻击者可以利用之前生成的订单来调用XToken的borrow函数来借款,而因为抵押的NFT在之前已经被提出,故攻击者可以不用还款来实现获利。
攻击交易分析
此处仅展示其中一笔攻击交易的细节,其余攻击交易的手法均一致,不再赘述。攻击前准备——生成订单的交易:0x61a6a8936afab47a3f2750e1ea40ac63430a01dd4f53a933e1c25e737dd32b2f1.首先攻击者将NFT转入攻击合约并进行授权,接着调用xNFT合约中的pledgeAndBorrow函数在进行抵押NFT生成订单并借款的操作,此处需要注意一点是该函数可以控制传入的xToken,攻击者传入了自己构造的xToken合约地址,并且让借款数量为0,目的是为了满足后续能成功提出NFT时的不被清算且负债为0的条件。
2.攻击者紧接着调用withdrawNFT函数来进行提取抵押的NFT:
正式攻击交易:0x51cbfd46f21afb44da4fa971f220bd28a14530e1d5da5009cfbdfee012e57e35攻击者调用xToken合约的borrow函数,传入之前生成的订单的orderID,重复了该操作22次,而因为NFT在准备阶段已经提走,估计无需还款以此来获利。
总结
本次漏洞的核心在于借款的时候,没有进行订单中NFT是否被提走的状态的判断,导致攻击者可以在把NFT提走之后再利用之前生成的订单来借款而无需还款,以此来获利。针对此类漏洞,慢雾安全团队建议在进行借款操作时应做好订单状态中是否已经提走抵押品的判断,避免再次出现此类问题。
标签:REWARDTOKENKENREWARDSREWARDS价格Chiva TokenpjdtokenXActRewards
236,237,这是自5月10日以来已知的大型机构BTC抛售量。大多数抛售都是被迫抛售,少数则不是,我们对过去两个月的抛售压力和连锁反应进行了简要的事后分析.
原文来源:NotBoringCapital原文编译:白泽研究院Crypto领域哪些产品是有用和真实的,哪些是炒作和庞氏局?爱好者似乎一致认为稳定币是最有用的,而在稳定币中.
时隔近一个月之后,Suzhu终于在推特上发声,他贴出两张他的法律顾问向三箭清算人的法律代表发送的邮件截图,并声称:清算人无视他们的合作的诚意,从而“引诱”他们。 事情的由头要说回7月8日.
本文来自Ankr,由Odaily星球日报译者Katie辜编译。 Web3基础设施提供商Ankr推出AnkrNetwork2.0,在新的白皮书中的描述是“Web3基础设施的去中心化市场”.
随着最大的DEX协议UniswapV3正式部署至Celo网络,Celo也为自己的生态吸引到了影响力最大的项目.
本文来自TheSeeDAO。推荐阅读:W&M报告:音乐NFT会迎来他们的PFP时刻吗? 当我们购买音乐NFT时,我们到底购买的是什么?购买了NFT就一定拥有了所有权,可以享受分成了吗?音.