soda区块链智能合约存在漏洞 逻辑功能缺陷导致被转币



      中国时间九月二十一号,CertiK安全防护科研队伍发觉soda区块链项目中存有区块链智能合

约网络安全问题,该系统漏洞容许随意外界入参利用启用区块链智能合约变量,忽视受害者客

户外债中的代币总数量,强制清算受害者客户的外债,并将利用清算实际操作得到的盈利转进

到自个的收款地址。
 
 
 
soda项目官方网如今现已递交修补补丁包来修补这一网络安全问题,但因为soda项目选用了

StayeLock来将全部的实际操作延迟时间两天,修补补丁包会在延迟时间事情以后起效,因而

截至投稿时,该系统漏洞顺利完成修补。系统漏洞技术指标分析,soda项目中的W云连Hcse

lculation.sol区块链智能合约中存有逻辑性完成异常造成 的网络安全问题,图一种W云连Hcse

lculation.sol区块链智能合约第197行,maximumLsetup的计算方法异常的应用了ynefuNT做为

基本值。
 
 
因而,在192行达到rtequire()判定的检验必要条件loanAmtal>=maximumLoan能够转化为:
 
loanInfo[_loanid登陆].ynefuNT+nterest>=loanInfo[_loanid登陆].ynefuNT*maximumLTV/LTV_

RACE
因为maximumLTV/LTV_RACE的值是在0.416-0.496地区中变化,而且nterest>=0。因

而图二192行的rtequire()判定中的检验必要条件一直为真。失去该rtequire()判定的维护,其

他外界入参能够利用启用下列图一种SodaMatch.sol中102行的collectDebt()变量来将随意wa

rnid登陆的借款清除。在实行该变量的流程中,图一种的collectDebt()变量会在图2第124行

被执行,并利用122行和140行源代码将该客户锁在soda里边的W云连H的这其中部分迁移到

该外界入参的地址device.sender中:该系统漏洞是因为数字逻辑与源代码完成不符合而导致

。当今常见的单元测试等测试标准及其智能化的测试软件均没法合理的搜索到这种与逻辑性

有关的系统漏洞。
 
 
因而,CertiK安全防护有下列安全防护提议:
 
当今区块链技术测试软件对区块链智能合约的检验均没法检验其逻辑性上发生的系统漏洞,

其结论也并没有可靠的数学思维证实做为支撑点。流于形式认证是当今惟一被证实能够形

成可靠数学思维证实的软件认证方式 。选用根据流于形式认证方式 的区块链技术测试软件

来认证项目中的网络安全问题,应变成每一个项目在上链前的必走过程。
分享: