NFT:慢雾发布OMNI被黑简析,建议在关键函数采用重入锁来防止重入问题

慢雾安全团队对此前7月10日OMNIProtocol闪电贷攻击事件进行了分析:1.攻击者首先通过supplyERC721函数抵押doodle,抵押后合约会给攻击者相应的凭证NToken;2.调用borrow函数借出WETH;3.调用withdrawERC721尝试提取NFT,跟进到内部函数executeWithdrawERC721发现,提款会先通过burn函数去燃烧凭证而burn函数中的safeTransferFrom函数会去外部调用接收地址的OnERC721Received函数,攻击者利用这点重入了合约的liquidationERC721函数;4.在liquidationERC721函数中,攻击者先支付了WETH并接收doodlenft,接着通过判断后会调用_burnCollateralNTokens函数去燃烧掉对应的凭证,同样的利用了burn函数外部调用的性质攻击者再次进行了重入操作,先是抵押了清算获得的nft,接着调用borrow函数去借出了81个WETH,但由于vars变量是在liquidationERC721函数中定义的,因此第二次借款不会影响到liquidationERC721函数中对用户负债的检查,这导致了攻击者可以通过userConfig.setBorrowing函数将用户的借款标识设置为false即将攻击者设置成未在市场中有借款行为;5.在提款时会首先调用userConfig.isBorrowingAny()函数去判断用户的借款标识,假如借款标识为false,则不会判断用户的负债,故此重入后的81WETH的负债并不会在提款时被判断,使得攻击者可以无需还款则提取出所有的NFT获利

慢雾:有用户遭钓鱼攻击,在OpenSea上架的NFT以极低匹配价格售出:据慢雾消息,有用户在 OpenSea 挂单售卖的 NFT 被恶意的以远低于挂单价匹配买。经慢雾安全团队分析,此是由于该受害用户遭受钓鱼攻击,错误的对攻击者精心构造的恶意订单进行签名,恶意订单中指定了极低的出售价格、买方地址为攻击者以及出售 NFT 为受害用户在 OpenSea 上架的待出售 NFT。攻击者使用受害用户已签名的出售订单以及攻击者自己的购买订单在 OpenSea 中进行匹配,并以攻击者指定的极低价格成交,导致受害用户的 NFT 以非预期的价格售出。[2021/12/11 7:31:47]

此次攻击的主要原因在于burn函数会外部调用回调函数来造成重入问题,并且在清算函数中使用的是旧的vars的值进行判断,导致了即使重入后再借款,但用户的状态标识被设置为未借款导致无需还款。慢雾安全团队建议在关键函数采用重入锁来防止重入问题。

分析 | 慢雾科技:钱包被注入恶意代码 可能是网站管理员没有维护好代码权限:针对“网页加密货币钱包Safuwallet被黑与币安服务器出现问题是否存在关联”一事,慢雾科技在接受金色财经采访时分析指出:“钱包被注入恶意代码,有可能是网站的管理员没有维护好代码的权限。导致网页代码被攻击者加入了恶意代码。恶意代码会窃取助记词、私钥等等的东西发送到攻击者自己的服务器上面,就像一个后门一样。类似的事件,以前也发生过不少,主要还是钱包的问题,从用户角度来看, 尽量不要用这种网页钱包。”[2019/10/12]

动态 | 慢雾关于 BSV 区块异常的进一步说明:此前慢雾安全团队披露“昨晚 BSV 区块连续出现多次回滚(高度 578640-578645),异常区块的交易数超多,通过慢雾安全团队的持续监测与分析,虽然 BSV 主网之后恢复正常且这次回滚行为和之前慢雾安全团队披露的 ETC 51% 双花盗币攻击行为不一样,出于谨慎目的,建议对接了 BSV 的交易所暂停 BSV 充提或提高确认数。”之后,通过与 BSV 社区的沟通,BSV 社区指出这是一位开发者在主网进行的一次短时生成大量交易的压力测试,该测试导致了本次区块深度重组事件,这种事件不会导致双花攻击,不会造成交易损失。通过慢雾安全团队的进一步分析来看,慢雾安全团队倾向认同这种“区块重组”说法。[2019/4/19]

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

地球链

[0:15ms0-0:985ms