月亮链 月亮链
Ctrl+D收藏月亮链
首页 > 屎币 > 正文

ODA:CertiK:Soda项目智能合约安全漏洞分析_SODATSU

作者:

时间:1900/1/1 0:00:00

判断一个人到底属于什么资产阶级,只需要看他的负债率。简而言之,借的钱越多,代表你越有钱。

所以借钱从某种角度上来讲,是属于富人的游戏。通过借贷手段合理分配资产从而达到收益也是理财的精髓。

相信每个人都好奇过,银行到底拿我们存的钱去做什么了呢?

从这种角度上来讲,银行属于最大的欠款方。那如果,突然有人攻破了银行系统,强制银行“还款”,然后本来需要还到储蓄者账户里的钱款直接被攻击者收入囊中,储蓄者和银行都将成为最大的受害方。

北京时间9月21日,CertiK安全研究团队发现soda区块链项目中存在智能合约安全漏洞,该漏洞允许任意外部调用者通过调用智能合约函数,无视受害用户债务中的代币数目,强行结算受害用户的债务,并将通过结算操作所得的收益转入到自己的收款地址。

CertiK:自上周五以来记录了22起事件,造成约740万美元的损失:金色财经报道,据CertiK官方推特发布消息称,自上周五以来,CertiK记录了22起事件,造成约740万美元的损失。到目前为止,共发生17起Discord黑客攻击事件、3 起网络钓鱼攻击事件和4起Twitter黑客攻击事件。[2023/8/12 16:21:31]

soda项目官方现在已经提交修复补丁来修复这个安全漏洞,但由于soda项目采用了TimeLock来将所有的操作延迟48小时,修复补丁会在延迟事件之后生效,因此截止发稿时,该漏洞已完成修复。

漏洞技术分析

图一

soda项目中的WETHCalculator.sol智能合约中存在逻辑实现错误导致的安全漏洞,图一中WETHCalculator.sol智能合约第193行,maximumLoad的计算公式错误的使用了amount作为基础值。

Larry Cermak:币安领投了Terra 2019年种子轮融资和2021年的融资:5月15日消息,The Block研究副总裁Larry Cermak在推特上表示,很容易理解为什么CZ(赵长鹏)一连发布了多条关于LUNA的推文。币安领投了Terra 2019年的种子轮融资和2021年的融资。在大概6个月前结束的上一轮融资中,他们以4年vest和1年cliff(最短生效期)投资了3亿美元(与Jump Crypto相同)。

此前消息,Luna Foundation Guard(LFG)宣布完成10亿美元融资,本轮融资通过场外销售LUNA代币完成,由Jump Crypto和三箭资本领投,Republic Capital、GSR、Tribe Capital、DeFiance Capital等参投。[2022/5/15 3:17:13]

因此,在196行满足require()判断的检测条件loanTotal>=maximumLoan可以转换为:

dHedge社区发起提案DFP-7 建议添加集成Balancer Labs:10月21日消息,去中心化资管协议dHedge社区发起提案DFP-7,建议添加集成Balancer Labs,这将进一步扩大经理可用的资产,同时也开辟新的高收益耕作机会。[2021/10/21 20:46:40]

loanInfo.amountinterest>=loanInfo.amount*maximumLTV/LTV_BASE

由于maximumLTV/LTV_BASE的值是在0.15-0.95区域中变动,并且interest>=0。因此图一196行的require()判断中的检测条件总是为真。

失去了该require()判断的保护,任何外部调用者可以通过调用以下图二中SodaBank.sol中104行的collectDebt()函数来将任意loadId的贷款清空。在执行该函数的过程中,图一中的collectDebt()函数会在图2第121行被执行,并通过123行和125行代码将该用户锁在soda里面的WETH的其中一部分转移到该外部调用者的地址msg.sender中:

动态 | EOS42提出 对reg_producer 合约的修改建议 包含惩罚节点的措施:据 IMEOS 报道,EOS42 发文阐述了对 reg_producer 合约的修改建议,包含了惩罚节点的措施。EOS42 将 reg_producer 分解为三个主要目标:通过在reg_producer 合约中设定标准的方式,使得可以对出块节点问责,其最终目的是确保 EOS 网络性能足以为 DAPPs 提供可靠支持,帮助 EOS 代币持有人进行明智投票,并通过客观地保留不能变更的 EOS 区块链的方式保护 EOS 用户。[2019/2/15]

图二(参考链接2)

通过以上漏洞,任何外部调用者都可以通过调用SodaBank.sol中的collectDebt()并传入其他用户的loadId来清空该用户在soda中的代币。

官方修复细节

soda官方为修复以上漏洞,设计了新的智能合约WETHCalculatorFixed.sol来替换WETHCalculator.sol。

通过分析可以看到在图三WETHCalculatorFixed.sol智能合约第979行,maximumLoan的计算公式被正确的计算为loanInfo.lockedAmount?*maximumLTV/LTV_BASE。因此,图三中第982行require()判断的检测条件变更为:

loanInfo.amountinterest>=loanInfo.lockedAmount*maximumLTV/LTV_BASE

图三

该等式的代码实现与soda项目中的逻辑设计相符,该等式的真假与用户的借贷债务数目和被锁本金数目相关。漏洞完成修复。

soda项目中关于该等式的逻辑设计细节可以从下面的链接中进行了解:

https://medium.com/soda-finance/the-soda-revolution-9185fdb99fc1

事件分析总结

该漏洞是由于逻辑设计与代码实现不符而造成。当前常用的单元测试等测试方法以及自动化的测试工具均无法有效的查找到该种与逻辑相关的漏洞。

因此,CertiK安全团队有以下安全建议:

安全是区块链项目的立足之本,任何区块链项目在上线前需要请专业第三方安全审计团队对项目整体代码进行安全审计。

当前区块链检测工具对智能合约的检测均无法检测其逻辑上出现的漏洞,其结果也没有可信的数学证明作为支撑。形式化验证是当前唯一被证明可以产生可信数学证明的软件验证方法。采用基于形式化验证方法的区块链检测工具来验证项目中的安全漏洞,应成为每一个项目在上链前的必经步骤。

参考链接:

图一:

https://github.com/soda-finance/soda-contracts/blob/master/contracts/calculators/WETHCalculator.sol#L189

图二:

https://github.com/soda-finance/soda-contracts/blob/master/contracts/components/SodaBank.sol#L104

图三:

https://github.com/soda-finance/soda-contracts/blob/master/contracts/calculators/WETHCalculatorFixed.sol#L275

标签:ODASODASODCERSoda FinanceSODATSUSODATSUcere币发行量

屎币热门资讯
数字人:更多信息浮出水面 数字人民币影响几何?_区块链存证平台法院

数字人民币正在内部封闭测试,引发关注。最近,又有多个有关数字人民币的信息浮出水面:北京提出建设数字货币试验区,央行数字货币研究所与京东数科达成战略合作,央行副行长范一飞撰文“回应”多个市场关注点.

1900/1/1 0:00:00
ISA:Visa高级副总裁:加密货币公司对与我们合作表现出“极大兴趣”_Defend Animals Foundation

据CoinDesk报道,Visa高级副总裁兼金融科技全球负责人TerryAngelos表示,加密货币公司对与他们合作表现出“极大的兴趣”.

1900/1/1 0:00:00
FIN:【新币上线】DiFy.Finance (YFIII)全球首发DigiFinex,参与交易享0手续费优惠_ethylenediamine

亲爱的用户:DigiFinex将于2020年09月28日17:00(GMT8)上线YFIII并同步开启充币及交易服务,提币服务将于2020年09月29日17:00(GMT8)开启.

1900/1/1 0:00:00
DEF:金色DeFi日报 | Sushiswap启动微信官方公众号_DeFi Wizard

DeFi数据1.DeFi总市值:127.87亿美元市值前十币种涨跌幅,金色财经制图,数据来源CoinGecko2.过去24小时去中心化交易所的交易量:7.89亿美元交易量排名前十的DEX数据来源.

1900/1/1 0:00:00
区块链:多方计算:打开区块链应用新场景_KEX

当今,全球主要国家都在加快布局区块链技术发展,想要确保我国占据区块链领域的创新制高点,需加快区块链和相关前沿信息技术的深度融合,推动集成创新和融合应用.

1900/1/1 0:00:00
数字资产:关于热门DeFi项目充值上线结果公布的公告_okex币官网

尊敬的OKEx用户:OKEx第二场热门DeFi项目充值上线活动已结束,感谢广大社区用户参与。现公布充值上线结果如下:经社区充值投票,前2名项目BOX、DMD符合本次上线条件,具体时间安排如下:1.

1900/1/1 0:00:00