1276 天前

07月11日,星期一 10:36

慢雾:OMNI Protocol 被黑简析

据慢雾安全团队情报,2022 年 7 月 10 号 OMNI Protocol 遭受闪电贷攻击。慢雾安全团队以简讯形式分享如下: 1. 攻击者首先通过 supplyERC721 函数抵押 doodle, 抵押后合约会给攻击者相应的凭证 NToken 2. 调用 borrow 函数借出 WETH 3. 调用 withdrawERC721 尝试提取 NFT, 跟进到内部函数 executeWithdrawERC721 发现,提款会先通过 burn 函数去燃烧凭证 而 burn 函数中的 safeTransferFrom 函数会去外部调用接收地址的 OnERC721Received 函数,攻击者利用这点重入了合约的liquidationERC721 函数 4. 在 liquidationERC721 函数中,攻击者先支付了 WETH 并接收 doodle nft,接着通过判断后会调用 _burnCollateralNTokens 函数去燃烧掉对应的凭证,同样的利用了 burn 函数外部调用的性质攻击者再次进行了重入操作, 先是抵押了清算获得的 nft, 接着调用 borrow 函数去借出了 81 个 WETH,但由于 vars 变量是在 liquidationERC721 函数中定义的,因此第二次借款不会影响到 liquidationERC721 函数中对用户负债的检查, 这导致了攻击者可以通过 userConfig.setBorrowing 函数将用户的借款标识设置为 false 即将攻击者设置成未在市场中有借款行为。 5. 在提款时会首先调用 userConfig.isBorrowingAny() 函数去判断用户的借款标识,假如借款标识为 false, 则不会判断用户的负债,故此重入后的 81 WETH 的负债并不会在提款时被判断, 使得攻击者可以无需还款则提取出所有的 NFT 获利 此次攻击的主要原因在于 burn 函数会外部调用回调函数来造成重入问题,并且在清算函数中使用的是旧的 vars 的值进行判断,导致了即使重入后再借款,但用户的状态标识被设置为未借款导致无需还款。慢雾安全团队建议在关键函数采用重入锁来防止重入问题。 攻击交易:0x05d65e0adddc5d9ccfe6cd65be4a7899ebcb6e5ec7a39787971bcc3d6ba73996

5
1
  • BTC跌破91000美元,日内下跌 0.45%

    火讯财经讯,1月8日消息,欧易OKX行情显示,BTC刚刚跌破91000美元,现报90938.50美元/枚,日内下跌0.45%。

    5 小时前

  • Revolut正洽谈收购土耳其数字银行Fups

    火讯财经讯,1月7日消息,据彭博社报道,知情人士透露,金融科技巨头RevolutLtd.正在洽谈收购土耳其数字银行FUPS,以便在该国开始提供服务。目前尚未做出最终决定,谈判仍在进行中。如果两家银行达成协议,此次收购还需获得土耳其银行业监管机构BDDK的批准。 Fups持有土耳其2022年推出的无分支机构银行框架下的完整数字银行牌照,初始资本约8100万美元,目前员工约60人。对Revolut而言,此次收购的吸引力主要在于Fups的监管地位,而非其客户规模或技术。

    8 小时前

  • 过去24小时全网合约爆仓4.16亿美元,主爆多单

    火讯财经讯,1月7日消息,CoinAnk数据显示,过去24小时加密货币市场全网合约爆仓4.16亿美元,其中多单爆仓3.46亿美元,空单爆仓6963.04万美元。BTC爆仓总金额1.49亿美元,ETH爆仓总金额8420.97万美元。

    8 小时前

  • 价值400万美元的TRADOOR代币从三个团队钱包转移至Bitget

    火讯财经讯,1月7日消息,据onchainschool.pro监测,过去一小时内,价值400万美元的TRADOOR代币从三个团队钱包转移至Bitget交易所。

    8 小时前

  • James Wynn的ETH和PEPE多单遭遇部分清算

    火讯财经讯,1月7日消息,据OnchainLens监测,随着市场下跌,JamesWynn的ETH和PEPE多头头寸遭遇了部分清算。 他的PEPE头寸在盈利状态下平仓,但由于保证金不足,最终仍被清算。

    8 小时前