返回博客

少存多得:yCREDIT攻击详情

Code Auditing
2021年1月3日
阅读约 4 分钟

2021年1月2日(北京时间07:25),我们的监控系统ThunderForecast报告了一系列针对yCREDIT智能合约的可疑交易。随后,我们使用研究团队开发的EthScope系统分析了这些交易,并确认所有报告的交易都是恶意的。在本篇博文中,我们将详细说明攻击细节。

详情

此次攻击是由于铸造的代币数量与预期不符。因此,攻击者可以以较低的价格获得更多的yCREDIT代币。然后,这些代币可以被出售以获利。

易受攻击的函数位于StableYieldCredit合约的_deposit函数中。

下面,我们将使用一个攻击交易来演示整个过程。

攻击者首先向WBTC-yCREDIT交易对池转入了1e-8 WBTC和331.335 yCredit代币。然后,攻击者向StableYieldCredit合约存入了0.5 WBTC以发动攻击。

具体来说,_value是根据ChainLink价格预言机(在第480行,_value为1466786010075)基于token(0x2260fac5e5542a773aa44fbcfedf7c193bc2c599 - WBTC)的amount(0.5)计算得出的。目的是计算存入的WBTC以美元计的价值。然后,合约会将yCREDIT代币的数量(_value - fee)转给存入WBTC的人(攻击者)。这是因为yCREDIT的价值等于一美元(由系统设计)。除了攻击者损失少量fee之外,一切都正常。

此外,合约会将存入的WBTC添加到WBTC-yCREDIT交易对池中。这是因为如果存入的WBTC被锁定在合约中,它将失去流动性。因此,它首先计算将被放入池中的代币对(WBTC到yCREDIT)的价值。这个价值是通过_addLiquidity函数计算的。基本上,它是基于池中现有的储备来计算的。由于池中只有1e-8 WBTC和331.335 yCREDIT代币,计算出的amountA为44(amountB为1466786010075)。这意味着攻击者只花费了44e-8 WBTC(第485行),并获得了14667.86010075 - fee = 14594.52080025 yCREDIT代币(第493行)。同时,池中留下了少量WBTC(1e-8 + 44e-8)和(331.335 + 14667.86010075)yCREDIT代币。

为了获利,攻击者可以简单地在交易所交易获得的14594.52080025 yCREDIT代币。有趣的是,在此交易中获利的过程比必要的要复杂得多。我们也在其他交易中观察到了巧妙的攻击策略。

此次攻击涉及一系列交易,包括(但不限于)以下交易。

更新

2020/01/03:已发布一个新智能合约来修复此漏洞。

时间线

  • 2021/01/01 23:25 UTC,攻击被我们的系统捕获
  • 2021/01/02 16:20 UTC,发布此博文
订阅最新动态
Bitget 3.875亿美元链下漏洞事件:不止于密钥与合约
Security Insights

Bitget 3.875亿美元链下漏洞事件:不止于密钥与合约

2026年9月24日,攻击者利用第三方安全产品漏洞,获取内部凭证并伪造提现指令,导致Bitget部分运营钱包资金转出约3.875亿美元,涉及以太坊、其他EVM网络、XRP Ledger、Zcash和TRON,私钥及冷钱包未受影响。本文梳理事件路径与资金流向,分析资产快速转换及生态恢复应对,提出机构纵深防御体系,并说明授权区块链渗透测试如何验证跨层安全假设。

损失约1130万美元:Multicall Router、Nostra | BlockSec Weekly
Security Insights

损失约1130万美元:Multicall Router、Nostra | BlockSec Weekly

本报告覆盖2026/09/14至09/20,分析以太坊与Starknet上两起共约1130万美元损失的安全事件。较大一起中,多重调用路由器将自身地址当作调度目标,致嵌套调用以路由器已授权身份而非外部调用者身份进入Safe钱包的Gateway模块,约2900个aEthrsETH被转入攻击者创建的Uniswap v4池。Starknet上,Nostra预言机仅需一个聚合来源,三个价格源中仅两个参与聚合时,被操纵的浅池报价与正常报价平均,使NSTR估值约49.52美元,支持约350万美元超额抵押借贷。

~3.2亿美元损失:Liquid Network、Symbiosis 遭利用攻击 | BlockSec
Security Insights

~3.2亿美元损失:Liquid Network、Symbiosis 遭利用攻击 | BlockSec

本报告覆盖2026/09/07-09/13,分析两起共损失约3.2亿美元的安全事件,含此前未覆盖的Liquid Network于09/06遭利用事件。较大事件中,Elements的rangeproof验证缓存因字段拼接无分隔符导致验证结果错配,攻击者伪造4000枚无支撑L-BTC并几乎全部兑出。Symbiosis跨链桥比特币路线因手续费未做负值校验,330聪存款铸造出46,116,860,184.27388234 syBTC,流动性池仅存11.26 syBTC,致约970万美元损失(约9.97 BTC)。

Web3 最佳安全审计方

在上线之前验证设计、代码与业务逻辑,对标业内最高安全标准。

BlockSec 审计