據慢霧區情報,2020 年 11 月 22 日,以太坊 DeFi 項目 Pickle Finance 遭受攻擊,損失約 2000萬DAI。慢霧安全團隊第一時間跟進相關事件并進行分析,以下為分析簡略過程
1、項目的 Controller 合約中的 swapExactJarForJar 函數允許傳入兩個任意的 jar 合約地址進行代幣的兌換,其中的 _fromJar, _toJar, _fromJarAmount, _toJarMinAmount 都是用戶可以控制的變量,攻擊者利用這個特性,將 _fromJar 和 _toJar 都填上自己的地址,_fromJarAmount 是攻擊者設定的要抽取合約的 DAI 的數量,約 2000萬 DAI
慢霧:Moonbirds的Nesting Contract相關漏洞在特定場景下才能產生危害:據慢霧區情報反饋,Moonbirds 發布安全公告,Nesting Contract 存在安全問題。當用戶在 OpenSea 或者 LooksRare等NFT交易市場進行掛單售賣時。賣家不能僅通過執行 nesting(筑巢) 來禁止NFT售賣,而是要在交易市場中下架相關的 NFT 售賣訂單。否則在某個特定場景下買家將會繞過 Moonbirds 在nesting(筑巢)時不能交易的限制。慢霧安全團隊經過研究發現該漏洞需要在特定場景才能產生危害屬于低風險。建議 Moonbirds 用戶自行排查已 nesting(筑巢)的 NFT 是否還在 NTF 市場中上架,如果已上架要及時進行下架。更多的漏洞細節請等待 Moonbirds 官方的披露。[2022/5/30 3:50:23]
2、使用 swapExactJarForJar 函數進行兌換過程中,合約會通過傳入的 _fromJar 合約和 _toJar 合約的 token() 函數獲取對應的 token 是什么,用于指定兌換的資產。 而由于 _fromJar 合約和 _toJar 合約都是攻擊者傳入的,導致使用 token() 函數獲取的值也是可控的,這里從 _fromJar 合約和 _toJar 合約 獲取到的 token 是 DAI,。
慢霧:Cover協議被黑問題出在rewardWriteoff具體計算參數變化導致差值:2020年12月29日,慢霧安全團隊對整個Cover協議被攻擊流程進行了簡要分析。
1.在Cover協議的Blacksmith合約中,用戶可以通過deposit函數抵押BPT代幣;
2.攻擊者在第一次進行deposit-withdraw后將通過updatePool函數來更新池子,并使用accRewardsPerToken來記錄累計獎勵;
3.之后將通過_claimCoverRewards函數來分配獎勵并使用rewardWriteoff參數進行記錄;
4.在攻擊者第一次withdraw后還留有一小部分的BPT進行抵押;
5.此時攻擊者將第二次進行deposit,并通過claimRewards提取獎勵;
6.問題出在rewardWriteoff的具體計算,在攻擊者第二次進行deposit-claimRewards時取的Pool值定義為memory,此時memory中獲取的Pool是攻擊者第一次withdraw進行updatePool時更新的值;
7.由于memory中獲取的Pool值是舊的,其對應記錄的accRewardsPerToken也是舊的會賦值到miner;
8.之后再進行新的一次updatePool時,由于攻擊者在第一次進行withdraw后池子中的lpTotal已經變小,所以最后獲得的accRewardsPerToken將變大;
9.此時攻擊者被賦值的accRewardsPerToken是舊的是一個較小值,在進行rewardWriteoff計算時獲得的值也將偏小,但攻擊者在進行claimRewards時用的卻是池子更新后的accRewardsPerToken值;
10.因此在進行具體獎勵計算時由于這個新舊參數之前差值,會導致計算出一個偏大的數值;
11.所以最后在根據計算結果給攻擊者鑄造獎勵時就會額外鑄造出更多的COVER代幣,導致COVER代幣增發。具體accRewardsPerToken參數差值變化如圖所示。[2020/12/29 15:58:07]
3. 此時發生兌換,Controller 合約使用 transferFrom 函數從? _fromJar 合約轉入一定量的的 ptoken,但是由于 fromJar 合約是攻擊者控制的地址,所以這里轉入的 ptoken 是攻擊者的假幣。同時,因為合約從 _fromJar 合約中獲取的 token 是 DAI,然后合約會判斷合約里的資金是否足夠用于兌換,如果不夠,會從策略池中贖回一定量的代幣 然后轉到 Controller 合約中。在本次的攻擊中,合約中的 DAI 不足以用于兌換,此時合約會從策略池中提出不足的份額,湊夠攻擊者設定的 2000萬 DAI?
動態 | 慢霧: 警惕利用EOS及EOS上Token的提幣功能惡意挖礦:近期由于EIDOS空投導致EOS主網CPU資源十分緊張,有攻擊者開始利用交易所/DApp提幣功能惡意挖礦,請交易所/DApp在處理EOS及EOS上Token的提幣時,注意檢查用戶提幣地址是否是合約賬號,建議暫時先禁止提幣到合約賬號,避免被攻擊導致平臺提幣錢包的CPU資源被惡意消耗。同時,需要注意部分交易所的EOS充值錢包地址也是合約賬號,需要設置白名單避免影響正常用戶的提幣操作。[2019/11/6]
4. 兌換繼續,Controller 合約在從策略池里提出 DAI 湊夠攻擊者設定的 2000萬 DAI后,會調用 _fromJar 的 withdraw 函數,將攻擊者在第三步轉入的假 ptoken burn 掉,然后合約判斷當前合約中 _toJar 合約指定的 token 的余額是多少,由于 _toJar 合約指定的 token 是 DAI,Controller 合約會判斷合約中剩余 DAI 的數量,此時由于 第三步 Controller 合約已湊齊 2000萬DAI,所以 DAI 的余額是 2000萬。這時 Controller 合約調用 _toJar 合約的 deposit 函數將 2000萬 DAI轉入攻擊者控制的 _toJar 合約中。到此,攻擊者完成獲利
總結:此次攻擊中,攻擊者通過調用 Controller 合約中的 swapExactJarForJar 函數時,偽造? _fromJar 和 _toJar 的合約地址,通過轉入假幣而換取合約中的真 DAI,完成了一次攻擊的過程。
Tags:JARTOKTOKENTOKEJarvisPoodl TokenHyFi Tokenitokenwallet詐騙
期待已久的比特幣牛市,以及最近一波企業和機構投資者將其大部分儲備分配給比特幣(BTC)的所有跡象.
1900/1/1 0:00:00據美國合規加密貨幣交易所 Coinbase 透露,隨著“大量資本涌入”,目前托管的加密資產規模已經達到 200 億美元,其中 140 億美元是在過去七個月時間累積的.
1900/1/1 0:00:00OKLink(11.30-12.06)比特幣和以太坊鏈上數據周報。 活躍地址數 上周比特幣全網活躍地址數量為712.84萬,環比下降1.55%;而以太坊全網活躍地址數量則為408.68萬,環比下.
1900/1/1 0:00:00在成功啟動以太坊2.0階段0(這是構建協議的下一個迭代的第一步)之后,以太坊聯合創始人Vitalik Buterin發布了以太坊下一步計劃的更新路線圖。以太坊2.0的當前發展通常分為多個階段.
1900/1/1 0:00:00根據鏈上分析師Willy Woo的說法,比特幣(BTC)的價格可能在2021年達到“保守”的目標20萬美元。這一預測的依據是,長期投資者對最近的反彈似乎更有信心.
1900/1/1 0:00:00在幣圈,不管是多頭還是空頭,有幣的沒幣的,挖礦的種地的,開門做生意的還是悶聲發財的,幾乎所有人,都認可比特幣長期來看,會很值錢.
1900/1/1 0:00:00