Trend-Themen
#
Bonk Eco continues to show strength amid $USELESS rally
#
Pump.fun to raise $1B token sale, traders speculating on airdrop
#
Boop.Fun leading the way with a new launchpad on Solana.
Willkommen bei Sherlocks Vulnerability Spotlight! Jede Woche werden wir eine bedeutende Schwachstelle hervorheben, die unsere Forscher während eines Sherlock-Audits entdeckt haben.
Diese Woche haben wir einen übermäßigen Abzug aufgrund von Fehlkonfiguration.
Er wurde von @bin2chen, @TheCHADuke, iglyx, @tapired, @xiaoming9090 und @0xleastwood im @NotionalFinance V3-Wettbewerb gefunden.

Wenn der aktuelleSaldo 999.900 USDC beträgt und der abzuhebendeBetragExtern 1.000.000 USDC beträgt, dann gibt es nicht genügend Guthaben im Vertrag, und zusätzliche Mittel müssen vom Geldmarkt (z. B. Compound) abgehoben werden.

Da der Vertrag bereits 999.900 USDC hat, müssen nur noch zusätzlich 100 USDC aus dem Geldmarkt abgehoben werden, um die Abhebungsanfrage von 1.000.000 USDC zu erfüllen.
Statt jedoch 100 USDC aus dem Geldmarkt abzuheben, hebt Notional 1.000.000 USDC gemäß der Funktion oracle.getRedemptionCalldata(withdrawAmountExternal) vom Markt ab. Infolgedessen werden 999.900 USDC zu viel aus dem Geldmarkt abgehoben.
Was ist die Auswirkung?
Dies führte zu einer übermäßigen Menge an Vermögenswerten, die in Notional untätig waren und keine Renditen oder Zinsen im Geldmarkt generierten, was zu einem erheblichen Verlust an Erträgen für die Nutzer führte, da sie einen niedrigeren Zinssatz als erwartet erhielten und einen Opportunitätsverlust erlitten.
Angreifer könnten dies potenziell ausnutzen, um die Mittel abzuziehen, die Notional in den Geldmarkt investiert hat, was zu Trauer und einem erheblichen Verlust an Renditen/Zinsen für das Protokoll führen würde.
Die Lösung:
Im Grunde genommen sagte der Code vor der Lösung zum Oracle: "Bereite Schritte vor, um alles, was der Benutzer möchte, vom Geldmarkt abzuheben."
Als ob es hätte sagen sollen: "Zieh nur das ab, was uns vom Geldmarkt fehlt."

Nach der Behebung bleibt für das vorherige Beispiel die bereits im Vertrag gehaltene Menge von 999.900 USDC unberührt, verdient weiterhin Erträge, verbessert die Effizienz und sichert die Renditen für alle Nutzer.
Diese Schwachstelle resultierte aus einem subtilen logischen Fehler bei der Berechnung und Übermittlung der Abhebungsbeträge. Indem das bestehende Guthaben des Vertrags übersehen wurde, zog das System unnötig übermäßige Mittel aus dem Geldmarkt, was zu Kapitalineffizienz und Ertragsverlust führte.
Wir sind stolz darauf, Notional durch diese Entdeckung gesichert zu haben. Wenn es absolut sicher sein muss, ist Sherlock die richtige Wahl.
2,83K
Top
Ranking
Favoriten