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

分析:Jet Protocol 任意提款漏洞_DEPO

Author:

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

By:Johan@慢霧安全團隊

據JetProtocol官方博客披露,他們近期修復了一個賞金漏洞,這個漏洞會導致惡意用戶可以提取任意用戶的存款資金,慢霧安全團隊對此漏洞進行了簡要分析,并將分析結果分享如下。

相關信息

JetProtocol是運行在Solana上的一個借貸市場,用戶可將賬號里的代幣存入金庫,賺取年化收益,同時也可以按一定的比例借出另一種代幣。在這個過程中合約會給用戶一個note憑證,作為用戶未來的提款憑證,用我們熟悉的字眼來說就是LP,而本次漏洞發生的原因也和這個LP的設計有關。

我們知道和以太坊合約相比,Solana合約沒有狀態的概念,取而代之的是賬號機制,合約數據都存儲在相關聯的賬號中,這種機制極大提升了Solana的區塊鏈性能,但也給合約編寫帶來了一些困難,最大的困難就是需要對輸入的賬號進行全面的驗證。JetProtocol在開發時使用了Anchor框架進行開發,Anchor是由Solana上的知名項目Serum團隊開發的,可以精簡很多賬號驗證及跨合約調用邏輯。

Binance因涉嫌從被盜加密貨幣的交易中獲利而面臨集體訴訟:金色財經報道,6月5日,Silver Miller 律師事務所和聯合律師 Kopelowitz Ostrow 對 Binance 及其 BAM Trading 提起集體訴訟。?紐約居民 Michael Osterer 擔任第一原告。他在一份法庭文件中稱,他在2021年4月從他的Coinbase賬戶中丟失了7.2個比特幣和449個以太幣,在提交申請時價值超過 100 萬美元。這些資金隨后在沒有經過 KYC 程序來驗證合法所有權的情況下存入了 Binance。[2023/6/7 21:22:13]

Anchor是如何工作的呢?我們可以從JetProtocol的一段代碼說起:

programs/jet/src/instructions/init_deposit_account.rs

美議員尋求對數字資產公司采取行動的有關信息:4月27日消息,美國眾議院金融服務委員會的三名共和黨議員已致函美國銀行業監管機構負責人,包括聯邦存款保險公司(FDIC)主席 Martin J. Gruenberg、美聯儲主席 Jerome Powell 和貨幣監理署(OCC)代理主計長 Michael J. Hsu,尋求有關可能對數字資產公司采取的協調行動的信息,并表示盡管加密行業存在普通欺詐,但數字資產活動本身并不存在風險。[2023/4/27 14:30:00]

這里的deposit_account賬號就是用于存儲LP代幣數據的賬號,用戶在首次使用時,需要調用合約生成該賬號,并支付一定的存儲費用。

而這里的?#?宏定義限定了這個賬號的生成規則:

Wemade鏈游平臺WEMIX PLAY推出游戲Token兌換服務:12月16日消息,韓國游戲巨頭Wemade旗下區塊鏈游戲平臺WEMIX PLAY宣布推出游戲Token兌換服務,首個上線的游戲Token是REFLECT。

據悉,該GameFi兌換服務允許用戶根據WEMIX價值變化進行即時交互,將游戲Token兌換成pWEMIX,還可以通過質押游戲Token和pWEMIX獲得一定比例的交易手續費用收入來增加資產價值。(prnewswire)[2022/12/16 21:49:20]

規則1:#

這個約束中,init是指通過跨合約調用系統合約創建賬號并初始化,payer=depositor意思是depositor為新賬號支付存儲空間費用。

幣安更新Terra Classic網絡上LUNC和USTC充值和提現手續費,交易銷毀稅由1.2%降低到0.2%:10月19日,幣安發布公告稱,由于LUNC社區通過的第5234號提案將交易銷毀稅由1.2%降低到0.2%,該提案估計于2022年10月19日20:50生效。幣安將在Terra Classic網絡上更新LUNC和USTC的充值和提現手續費,充值時LUNC與USTC充值的1.2%交易銷毀稅由降至0.2%,LUNC和USTC于幣安的充值,需繳納其他交易所或平臺(如適用)收取的提現費用;提現時用戶收到的提現金額將扣除幣安收取的提現手續費和0.2%的交易銷毀稅。[2022/10/19 17:32:36]

規則2:#

這個約束中將檢查給定帳戶是否是當前執行程序派生的PDA,PDA(ProgramDerivedAddress)?賬號是一個沒有私鑰、由程序派生的賬號,seed和bump是生成種子,如果bump未提供,則Anchor框架默認使用canonicalbump,可以理解成自動賦予一個確定性的值。

澳大利亞CBDC試點測試報告將于2023年年中發布:金色財經報道,澳大利亞儲備銀行(RBA)發布了一份白皮書,概述了開展eAUD試點項目的詳細計劃,成為打算推出央行數字貨幣(CBDC)國家名單中的一員。根據項目時間表,澳大利亞CBDC試點項目的報告預計將在2023年中期發布。

作為中央銀行,RBA將負責eAUD的發行,而數字金融合作研究中心(DFCRC)將監督eAUD平臺的開發和設置。行業參與者可以作為用例提供者加入試點。(Cointelegraph)[2022/9/26 22:30:05]

使用PDA,程序可以以編程方式對某些地址進行簽名,而無需私鑰。同時,PDA確保沒有外部用戶也可以為同一地址生成有效簽名。這些地址是跨程序調用的基礎,它允許Solana應用程序相互組合。這里用的是"deposits"字符+?reserve?賬號公鑰+?depositor?賬號公鑰作為?seeds,bump?則是在用戶調用時傳入。

規則3:#

這是一個SPL約束,用于更簡便地驗證SPL賬號。這里指定deposit_account賬號是一個token賬號,它的mint權限是deposit_note_mint賬號,authority權限是market_authority。

Account的宏定義還有很多,這里略表不提,詳細可以考慮文檔:

https://docs.rs/anchor-lang/latest/anchor_lang/derive.Accounts.html

有了這些前置知識,我們就可以直接來看漏洞代碼:

programs/jet/src/instructions/withdraw_tokens.rs

正常情況下,用戶調用函數withdraw_tokens提幣時,會傳入自己的LP賬號,然后合約會銷毀他的LP并返還相應數量的代幣。但這里我們可以看到deposit_note_account賬號是沒有進行任何約束的,用戶可以隨意傳入其他用戶的LP賬號。難道使用別人的LP賬號不需要他們的簽名授權嗎?

通過前面分析宏定義代碼,我們已經知道了market_authority賬號擁有LP代幣的操作權限,確實不需要用戶自己的簽名。那么market_authority又是一個怎么樣的賬號呢?我們可以看這里:

programs/jet/src/instructions/init_market.rs

這個market_authority也是一個PDA賬號。也就是說合約通過自身的調用就可以銷毀用戶的LP代幣。那么對于惡意用戶來說,要發起攻擊就很簡單了,只要簡單地把deposit_note_account賬號設置為想要竊取的目標賬號,withdraw_account賬號設置為自己的收款賬號,就可以銷毀他的LP,并把他的存款本金提現到自己的賬號上。

最后我們看一下官方的修復方法:

補丁中并未直接去約束deposit_note_account賬號,而是去除了burn操作的PDA簽名,并將authority權限改成了depositor,這樣的話用戶將無法直接調用這里的函數進行提現,而是要通過另一個函數withdraw()?去間接調用,而在withdraw()?函數中賬號宏定義已經進行了嚴密的校驗,惡意用戶如果傳入的是他人的LP賬號,將無法通過宏規則的驗證,將無法通過宏規則的驗證,因為depositor需要滿足signer簽名校驗,無法偽造成他人的賬號。

programs/jet/src/instructions/withdraw.rs

總結

本次漏洞的發現過程比較有戲劇性,漏洞的發現人@charlieyouai在他的個人推特上分享了漏洞發現的心路歷程,當時他發現burn的權限是market_authority,用戶無法進行簽名,認為這是一個bug,會導致調用失敗且用戶無法提款,于是給官方提交了一個賞金漏洞,然后就去吃飯睡覺打豆豆了。

而后官方開發者意識到了問題的嚴重性,嚴格地說,他們知道這段代碼沒有無法提現的漏洞,而是人人都可以提現啊,老鐵,一個能良好運行的bug你知道意味著什么嗎?!所幸的是沒有攻擊事件發生。

目前在Solana上發生過多起黑客攻擊事件均與賬號校驗問題有關,慢霧安全團隊提醒廣大Solana開發者,注意對賬號體系進行嚴密的審查。

Tags:HORPOSDEPODEPhorizen幣前景SafePostDEPI價格

Uniswap
天橋房鏈擺脫出金窘境_數字貨幣

導語:當前國內數字貨幣交易所和場外OTC交易普遍關停,國內用戶面臨出金難,風險大的窘迫局面。天橋房鏈以房產為橋梁,解決數字資產出金不易的痛點,防凍防騙實現大額完美出金.

1900/1/1 0:00:00
Arbitrum存在哪些挑戰?為何推出Nitro?_TRU

L2網絡Arbitrum自去年上線以來,因其提供廉價和快速的用戶體驗而迅速獲得了巨大的吸引力,TVL(總鎖倉價值)早已經超過了幾十億美元.

1900/1/1 0:00:00
深入解讀 DAO 籌款工具 Juicebox 產品現狀及未來潛力_EBOX

作者:echo_z 原標題:《DAO籌款工具Juicebox價值幾何|鏈茶盡調》從去年下半年開始,DAO的發展讓人們看到去中心化人類合作的希望.

1900/1/1 0:00:00
Solana生態細分龍頭分析報告_LANA

前言 為了滿足區塊鏈用戶的需求,公鏈,異構鏈,平行鏈層出不窮,Solana不僅“殺出重圍”還一躍成了極為亮眼的一條公鏈.

1900/1/1 0:00:00
5個月募資22億美元,2022年是DAO的一年嗎?_KEN

自2021年起,Web3.0連同DAO、SocialFi等相關領域,成為VC們討論的重點。據《鏈新》統計,2021年10月,關于Web3.0、DAO、SocialFi等相關領域的新基金僅有3只,

1900/1/1 0:00:00
StepN 出圈效應背后,去中心化機器金融會迎來爆發嗎?_EFI

原文標題:《IOSGWeeklyBrief|擁抱MachineFi:去中心化機器金融的未來#120》 撰文:RayXiao 是新瓶裝老酒還是一代新人換舊人?最近筆者的一個圈外朋友說自己原來從不運.

1900/1/1 0:00:00
ads