Creat future惨遭随意转移币,幕后黑手究竟是谁?_FER:TRANS

前言

CF代币合约被发现存在漏洞,它允许任何人转移他人的CF余额。到目前为止,损失约为190万美元,而pancakeswap上CF/USDT交易对已经受到影响。知道创宇区块链安全实验室第一时间对本次事件深入跟踪并进行分析。

事件详情

年初以来,稳定币DAI持有的USDC储备从24亿美元降至5.2亿美元:金色财经报道,自今年年初以来,在MakerDAO挂钩稳定性模块(PSM)中用作支持的USDC数量已大幅下降。据DeFiLlama的数据,2023年1月,PSM中锁定了约24亿美元的USDC。现在,这一数字已缩减至5.2亿美元左右,这表明在其自己的合约中直接用于支持DAI的USDC金额下降了78%。值得注意的是,USDC在DAI抵押品储备中的总体份额已从50%左右下降到仅为8%。目前DAI的供应量为47亿。

金色财经注:PSM允许用户以1:1的比例存入USDC并铸造DAI,有助于保持稳定币与美元挂钩。[2023/6/24 21:56:53]

受影响的合约地址

MakerDAO:过去24小时有超7亿枚DAI通过PSM被铸造:金色财经报道,MakerDAO在推特上表示,过去24小时有7.36亿枚DAI通过PSM(USDC)被铸造,使得过去24小时通过PSM铸造的DAI净增加2.96亿枚。[2023/3/11 12:56:21]

https://bscscan

DigiDaigaku CEO:QQL对X2Y2封禁是对所有免版税NFT交易所的致命打击:10月17日消息,DigiDaigaku首席执行官Gabriel Leydon表示,作生成艺术NFT项目QQL对X2Y2封禁的成功是对所有免版税NFT交易所的致命打击。这些交易所违背了他们的社会契约,QQL只是将协议转移到他们可执行的智能合约中。[2022/10/17 17:28:52]

uint256fee=0;..

_transfer()函数是直接转移代币transfer()和授权转移代币transferFrom()的具体实现,但该函数的修饰器是public,因此任何人都可以不通过transfer()或transferFrom()函数直接调用它。而当变量useWhiteListSwith设置为False时,该函数不会检查调用地址和传输地址是否合规,直接将代币转移到指定地址。

在区块高度为16841993时,管理员就把useWhiteListSwith设置为False:

此时开始有攻击者利用_transfer()函数直接转移代币:

总结

经过完整分析,知道创宇区块链安全实验室明确了该次事件的源头由函数本身权限出现问题,而管理员同时操作不慎关闭了白名单检测,两方结合导致攻击者可以实现转移任意钱包代币的操作。

在核心函数上我们一直建议使用最小权限原则,像这次的_transfer()函数本不该用public修饰器,使得transferFrom()函数检查授权额度的功能形同虚设;而合约管理者也不该随意修改关键变量值,导致攻击者可以绕过白名单检查的最后一道防线。

合约不仅仅是代码层面的安全,不光需要白盒代码审计,更需要合约管理员共同合理维护。

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

金宝趣谈

[0:0ms0-6:338ms