<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Morpheus 審計報告分享1:AAVE 項目 Pool 合約地址更新導致的組合性風險

      前言

      這次為大家?guī)淼氖?Code4Rena 審計平臺上 Morpheus 項目的審計結(jié)果分享,也是第一次寫這種形式的博客,主要的目的是在閱讀審計報告的時候?qū)W習并歸納一些比較有價值的漏洞形式。好的,話不多說,直接開始。

      漏洞信息

      漏洞報告

      1. https://code4rena.com/audits/2025-08-morpheus/submissions/S-484
      2. https://code4rena.com/audits/2025-08-morpheus/submissions/S-666

      漏洞代碼

      1. https://github.com/code-423n4/2025-08-morpheus/blob/a65c254e4c3133c32c05b80bf2bd6ff9eced68e2/contracts/capital-protocol/Distributor.sol#L192-L248

      漏洞背景

      在 AAVE 項目中,Pool 合約的地址是可能改變的:

      1. 代碼中存在修改 Pool 地址的邏輯:
        1. https://github.com/aave/aave-v3-core/blob/master/contracts/protocol/configuration/PoolAddressesProvider.sol#L23
        2. https://github.com/aave/aave-v3-core/blob/master/contracts/protocol/configuration/PoolAddressesProvider.sol#L57-L61

      image

      image

      在 C4 的審計報告中提到“AAVE 在 V2 到 V3 等主要版本升級或池遷移期間修改過 Pool 地址”,那么歷史上出現(xiàn)過修改 Pool 地址的操作嗎?:[尚未找到證據(jù)]

      為了求證這個說法,經(jīng)過多次的搜索與鏈上狀態(tài)分析,并沒找到修改的相關(guān)信息。

      AAVE 地址查詢:https://aave.com/docs/resources/addresses

      1. 通過查詢相關(guān) Event 沒有結(jié)果:
        • V2 Event:AddressSet(bytes32,address,bool):0xf2689d5d5cd0c639e137642cae5d40afced201a1a0327e7ac9358461dc9fff31
        • V3 Event:AddressSet(bytes32,address,address):0x9ef0e8c8e52743bb38b83b17d9429141d494b8041ca6d616a6c77cebae9cd8b7
      2. 通過對比 PoolAddressesProvider 和 Pool 合約的部署日期,均為一致的,說明 Pool 在部署后就沒有進行過更改。

      漏洞案例

      在 Distributor 合約的設計中,token - aToken - Pool 三者的關(guān)系是對應的。

      且 Pool 的地址是通過 setAavePool() 函數(shù)手工設置的

      image

      在 addDepositPool() 函數(shù)中, 管理員可以為目標 token 新增一個獎勵池子,如果該池子是 AAVE 策略的,會先檢查該 token 對應的獎勵池是否已經(jīng)存在,然后再對 Pool 進行進行 token 和 aToken 的授權(quán)。

      image

      如果 AAVE 更新了 Pool 的地址,則 token 和 aToken 對應 Pool 應該進行改變。但即使管理員通過 setAavePool() 函數(shù)重新設置了 aavePool 的地址,也無法取消舊池子的授權(quán),以及為新池子添加授權(quán)。

      如果采取再次添加新池子的形式,也會由于 !isDepositTokenAdded[token_] 的檢查而失敗。

      這個設計缺陷會導致獎勵池中的資產(chǎn)被鎖定,用戶無法正常領(lǐng)取獎勵。

      修復方案

      在 setAavePool() 函數(shù)中添加如下邏輯

      1. 取消對舊池子的授權(quán)
      2. 執(zhí)行對新池子的授權(quán)

      補充材料

      建議在需要 Pool 合約時從 PoolAddressesProvider 智能合約中通過 getPool() 函數(shù)獲取正確的地址,而不是自行設定一個 Pool 地址。如果采取手動設置的形式,在 AAVE 更新后和手動更新前這段事件內(nèi),無法保證協(xié)議能夠正常運行。

      https://aave.com/docs/developers/smart-contracts/pool-addresses-provider

      image

      后記

      第一次寫這種形式的文章,感覺無論是自己分析還是讀者閱讀,最大的難點就是如何在不熟悉項目代碼的前提下,能夠?qū)β┒磮蟾嬷械膬?nèi)容有清晰的認知和深入的理解。但是目前沒有很好的辦法能夠滿足這種需求,只能夠退而求其次。嘗試盡可能地把漏洞相關(guān)的代碼從項目中拆解出來并且向讀者交代一個大概的項目背景這樣類似 docker 般的形式來輸出內(nèi)容。當然如果你什么更好的方法也隨時歡迎討論,感謝閱讀。

      posted @ 2025-09-09 23:28  ACai_sec  閱讀(149)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 九九热在线免费视频精品| 国产精品久久久久久av| 激情综合色区网激情五月| 日韩欧国产美一区二区在线| 国产一区二区三区尤物视频| аⅴ天堂国产最新版在线中文| 亚洲欧洲成人a∨在线| 国产精品自在线拍国产手机版| 亚洲中文字幕无码久久精品1| 亚洲美女被黑人巨大在线播放| 国产私拍福利精品视频| 久章草在线毛片视频播放| 老鸭窝| 熟妇人妻中文a∨无码| 白色丝袜国产在线视频| 国产偷窥熟女高潮精品视频| 欧美日本在线一区二区三区| 久热伊人精品国产中文| 桃园市| 精品一区二区久久久久久久网站| 久久亚洲精品中文字幕| 日韩精品人妻黄色一级片| 国产盗摄视频一区二区三区| 久久人妻无码一区二区| 亚洲人成网站18禁止无码| 色二av手机版在线| 波多野结衣视频一区二区| 亚洲欧美综合精品成人网站| 国产成人无码免费视频麻豆| 欧美成人精品手机在线| 日韩精品无码区免费专区| 亚洲成a人无码av波多野| 国产午夜精品无码一区二区| 99国产精品永久免费视频| 久久久久四虎精品免费入口| 99在线精品视频观看免费| 国产精品不卡一二三区| 99国产精品一区二区蜜臀| 日韩精品一区二区三区中文| 在线看免费无码av天堂| 色爱综合另类图片av|