Vítejte v Sherlockově centru pozornosti ohledně zranitelnosti! Každý týden upozorníme na působivou zranitelnost, kterou naši výzkumníci odhalili během auditu Sherlocka. Tento týden máme nadměrný výběr z důvodu chybné konfigurace. Našli ho @bin2chen, @TheCHADuke, iglyx, @tapired, @xiaoming9090 a @0xleastwood v soutěži @NotionalFinance V3.
Pokud je aktuální Zůstatek 999 900 USDC a hodnota withdrawalAmountExternal je 1 000 000 USDC, pak je ve smlouvě nedostatečný zůstatek a je třeba z peněžního trhu stáhnout další prostředky (např. Compound).
Vzhledem k tomu, že kontrakt již obsahuje 999 900 USDC, stačí z peněžního trhu stáhnout pouze dalších 100 USDC, aby byl splněn požadavek na výběr ve výši 1 000 000 USDC
Místo toho, aby společnost Notional vybrala z peněžního trhu 100 USDC, stáhne z trhu 1 000 000 USDC podle funkce oracle.getRedemptionCalldata(withdrawAmountExternal). V důsledku toho je z peněžního trhu staženo přebytečných 999 900 USDC.
Jaký to bude mít dopad? To vedlo k tomu, že nadměrné množství aktiv v pomyslné směnárně nečinně negenerovalo žádné výnosy ani úroky na peněžním trhu, což vedlo k významné ztrátě výnosu pro uživatele, protože by obdrželi nižší úrokovou sazbu, než se očekávalo, a utrpěli by ztrátu příležitosti.
Útočníci by toho mohli potenciálně zneužít k vytažení finančních prostředků, které Notional investoval na peněžním trhu, což by vedlo ke griefingu a ohromující ztrátě výnosů/úroků pro protokol.
Oprava: V podstatě před opravou kód říkal orákulu: "Připravte kroky ke stažení všeho, co uživatel chce z peněžního trhu." Když mělo být řečeno: "Vytahujte jen to, co nám chybí na peněžním trhu."
Po opravě, v předchozím příkladu, zůstane 999 900 USDC, které již kontrakt drží, nedotčeno a nadále bude přinášet výnos, zlepšovat efektivitu a zachovávat výnosy pro všechny uživatele.
Tato chyba zabezpečení pramenila z jemné logické chyby ve způsobu výpočtu a předávání částek výběrů. Tím, že systém přehlížel stávající zůstatek kontraktu, zbytečně stahoval nadměrné prostředky z peněžního trhu, což vedlo k kapitálové neefektivitě a ztrátě výnosů. Jsme hrdí na to, že jsme tímto objevem pomohli zajistit společnost Notional. Když je to nezbytně nutné zabezpečit, je Sherlock tou správnou volbou.
2,83K