比特幣交易所 比特幣交易所
Ctrl+D 比特幣交易所
ads
首頁 > XLM > Info

CertiK:Soda項目智能合約安全漏洞分析_SODA

Author:

Time:1900/1/1 0:00:00

判斷一個人到底屬于什么資產階級,只需要看他的負債率。簡而言之,借的錢越多,代表你越有錢。

所以借錢從某種角度上來講,是屬于富人的游戲。通過借貸手段合理分配資產從而達到收益也是理財的精髓。

相信每個人都好奇過,銀行到底拿我們存的錢去做什么了呢?

從這種角度上來講,銀行屬于最大的欠款方。那如果,突然有人攻破了銀行系統,強制銀行“還款”,然后本來需要還到儲蓄者賬戶里的錢款直接被攻擊者收入囊中,儲蓄者和銀行都將成為最大的受害方。

北京時間9月21日,CertiK安全研究團隊發現soda區塊鏈項目中存在智能合約安全漏洞,該漏洞允許任意外部調用者通過調用智能合約函數,無視受害用戶債務中的代幣數目,強行結算受害用戶的債務,并將通過結算操作所得的收益轉入到自己的收款地址。

CertiK完成對螞蟻集團可信執行環境HyperEnclave的先進形式化驗證:金色財經報道,CertiK宣布完成對螞蟻集團開放式跨平臺可信執行環境(TEE)HyperEnclave的先進形式化驗證。螞蟻集團的可信原生技術團隊開發了開放跨平臺軟件可信執行環境HyperEnclave,旨在提高螞蟻集團隱私保護計算工作負載的效率和兼容性。CertiK通過其獨有的先進形式化驗證技術,驗證了HyperEnclave核心組件的安全性和技術正確性。[2023/7/26 15:59:27]

soda項目官方現在已經提交修復補丁來修復這個安全漏洞,但由于soda項目采用了TimeLock來將所有的操作延遲48小時,修復補丁會在延遲事件之后生效,因此截止發稿時,該漏洞已完成修復。

漏洞技術分析

CertiK:PorkiesNFT項目Discord服務器遭入侵:金色財經報道,據CertiK官方推特發布消息稱,PorkiesNFT項目Discord服務器遭入侵,有黑客發布釣魚鏈接。在團隊確認已重獲對服務器的控制之前,請勿點擊任何鏈接。[2023/7/8 22:25:40]

圖一

soda項目中的WETHCalculator.sol智能合約中存在邏輯實現錯誤導致的安全漏洞,圖一中WETHCalculator.sol智能合約第193行,maximumLoad的計算公式錯誤的使用了amount作為基礎值。

因此,在196行滿足require()判斷的檢測條件loanTotal>=maximumLoan可以轉換為:

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

dHedge社區發起提案DFP-7 建議添加集成Balancer Labs:10月21日消息,去中心化資管協議dHedge社區發起提案DFP-7,建議添加集成Balancer Labs,這將進一步擴大經理可用的資產,同時也開辟新的高收益耕作機會。[2021/10/21 20:46:40]

由于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中:

美國右翼媒體人Mike Cernovich發起10萬美元比特幣籌款活動:4月13日,美國右翼媒體人Mike Cernovich于推特發起10萬美元的比特幣籌款活動,以期望將其紀錄片做成一個播客節目。據悉,這部紀錄片的目的是揭露美國主流媒體的謊言,涉及新聞界對美國總統唐納德·特朗普的猛烈攻擊以及其他熱點問題。(U.Today)[2020/4/13]

圖二(參考鏈接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

Tags:ODASODSODACERkoda幣的前

XLM
UNIVS平臺幣 誰才是交易價值最佳捕手?_UNI

自9月17日Uniswap宣布上線治理代幣以來,圍繞UNI的爭議從未消失。Uniswap向曾經調用過UniswapV1或者V2合約的近5萬地址空投1.5億UNI,折合時價超過了10億元,被稱為“.

1900/1/1 0:00:00
MakeDAO發起有關添加多個Oracle白名單和確定RWA抵押品優先級等投票_Maker

據官方博客消息,9月22日,MakerFoundation智能合約團隊已將執行投票納入投票系統.

1900/1/1 0:00:00
【公示】“MKCY交易賽”9.21獲獎名單_LBank

尊敬的LBank用戶: LBank現公示從9月20日16:00至9月21日16:00交易量排名前三的中獎名單,具體情況如下:*為保證活動公平,LBank嚴禁刷單、對敲等作弊行為.

1900/1/1 0:00:00
【公示】“CDB交易賽”9.21獲獎名單_LBank

尊敬的LBank用戶: LBank現公示從9月20日18:00至9月21日18:00交易量排名前三的中獎名單,具體情況如下:*為保證活動公平,LBank嚴禁刷單、對敲等作弊行為.

1900/1/1 0:00:00
比特幣懷疑論者轉向比特幣牛市:十億美元公司在74小時內購買了17K BTC_比特幣

納斯達克上市公司Microstrategy最近在74小時內購買了近17,000個比特幣,耗資約1.75億美元.

1900/1/1 0:00:00
XRP長期價格分析:9月22日_CRYP

免責聲明:以下價格預測不應視為投資建議,因為這是作者的唯一見解。不足為奇的是,由于傳統股市,黃金和比特幣跌跌撞撞,集體替代幣市場在過去24小時內無法保持自己的地位.

1900/1/1 0:00:00
ads