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

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

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

      Morpheus 審計報告分享3:StETH 的精度丟失轉賬機制

      漏洞信息

      漏洞報告

      1. https://code4rena.com/audits/2025-08-morpheus/submissions/S-198

      漏洞背景

      1. https://docs.lido.fi/guides/lido-tokens-integration-guide#steth-internals-share-mechanics

      StETH 是一種通過將 ETH 質押獲取的 rebasing token,在用戶持有的過程中余額會隨著獎勵的累加而自動增加。用戶只需要持有 StETH 就可以獲得 ETH 獎勵,持有的 StETH 數量與可贖回的 ETH 數量是幾乎相等的。

      而實現這個 rebasing 功能依賴的是內部的 share 機制,share 的計算公式是

      shares = ETHAmount * TotalPooledETH / TotalShares
      

      ETH → StETH 的代碼實現是這樣的

      image

      而 StETH 的余額也是通過 shares 來計算得到的。

      image

      精度丟失問題

      在進行轉賬時,會經過 StETH amount → shares → transfer shares → update StETH balance 的過程

      image

      而由于 StETH amount → shares 的環節是向下取整的,所以可能會存在在進行 transfer 時,實際收到的 StETH 數量比傳入的參數要小的情況。

      image

      舉例說明:

      假設此時 StETH 中 shares : ETH = 1000 : 1500,UserA 向 UserB 進行轉賬

      1. UserA 持有 1500 StETH,對應 1000 shares
      2. Transfer 1300 StETH → shares = 1300 * 1000 / 1500 = 866.66… = 866
      3. UserB 收到 866 shares,對應 StETH = 866 * 1500 / 1000 = 1299

      這就導致了 UserA 在調用 transfer 函數時傳入的 amount 為 1300,而 UserB 實際上收到的代幣數量為 1299。

      漏洞案例

      當合約對 AAVE 進行 supply 操作時,如果 token 為 StETH,可能會出現實際 supply 的 StETH 數量小于 amount_ 的值。而在后續的 depositedlastUnderlyingBalance 變量計算中則是直接累加上了 amount_ 的值,使得它們的值比實際值要偏大。

      image

      而在后續的 distributeRewards() 函數中,首先會計算獲得的 aToken 數量(等于所提供的 StETH 數量),隨后用來減去 lastUnderlyingBalance。如果此時 StETH 的轉賬發生了精度丟失,且 aToken 的獎勵還沒開始累計,這個減法操作將會發生下溢出,導致操作回滾。

      image

      修復建議

      其實 Morpheus 在 User 往 Morpheus 協議轉賬這個層面有考慮到這個問題,所以采用的是轉賬前后賬戶余額差值(實際到賬金額)作為 amount_ 的值。而在 Morpheus 協議向 AAVE 轉賬這個環節沒有采用這種實踐。

      image

      補充材料

      1. https://docs.lido.fi/guides/lido-tokens-integration-guide#wsteth

      由于 StETH 的 rebasing 特性,在 DeFi 協議中使用起來可能會難以處理。所以為了解決這個問題,官方提供了 warp StETH 實現,也就是 WstETH。WstETH 的余額不會發生 rebasing,只能在轉賬、鑄造和銷毀時更改。
      image

      從代碼實現來看,其實 WstETH 對應的就是 StETH 里面的 shares

      posted @ 2025-09-16 09:03  ACai_sec  閱讀(97)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 亚洲日本VA午夜在线电影| 成人无码午夜在线观看| 欧美黑人巨大xxxxx| 国产盗摄xxxx视频xxxx| 亚洲精品99久久久久久欧美版| 久久精品成人免费看| 亚洲a人片在线观看网址| 国产精品久久久久久无毒不卡| 中文字幕av中文字无码亚| 人妻人人澡人人添人人爽| 亚洲激情国产一区二区三区 | 国产亚洲久久久久久久| 饶平县| 国产乱码日韩亚洲精品成人| 亚洲尤码不卡av麻豆| 精品国产午夜福利伦理片| 国产精品高清中文字幕| 成人看的污污超级黄网站免费| 在线免费播放av观看| 国产精品国产三级国产a| 77se77亚洲欧美在线| 女人下边被添全过视频的网址| 亚洲国产精品色一区二区| 国精产品999国精产品官网| 影音先锋啪啪av资源网站| 国产精品毛片一区视频播| 亚洲ⅴa曰本va欧美va视频| 精品国产乱码久久久久久影片| 中文字幕日韩精品有码| 亚洲成亚洲成网| 金溪县| 欧美日韩精品一区二区视频| 中文精品无码中文字幕无码专区 | 久久久久国产精品人妻| 人妻中文字幕一区二区三| 狠狠综合久久综合88亚洲| 国产乱子伦视频在线播放 | 91密桃精品国产91久久| 忘记穿内裤被同桌摸到高潮app| 超碰国产天天做天天爽| 欧美日韩一线|