Back to Blog

Jenseits des Marktrisikos: Logikfehler im SushiSwap KashiPairMediumRiskV1 Contract entdeckt

Code Auditing
December 15, 2022
4 min read

Am 08.11.2022 stellten wir fest, dass einige Angriffe erfolgreich Vermögenswerte aus Pools entzogen haben, die auf dem offiziellen KashiPairMediumRiskV1-Vertrag von Sushi (oder einigen davon abgeleiteten Verträgen) aufbauen. Nach der Untersuchung stellten wir fest, dass die Grundursache in einem Logikfehler liegt, der zu einer Fehlkalkulation der Token-Preise führt.

Wir kontaktierten sofort das Sicherheitsteam von Sushi, und sie bestätigten unsere Ergebnisse. Das Gute daran war, dass sie Maßnahmen ergriffen, um einige wertvolle, aber anfällige Pools vor Angriffen zu schützen. Außerdem stellten sie Verfahren zur Entschädigung derjenigen bereit, die durch den Exploit Gelder verloren hatten. Daher glauben wir nun, dass es sicher ist, die Details der Schwachstelle und der Angriffe offenzulegen. In diesem Bericht möchten wir eine detaillierte Analyse liefern.

Schwachstellenanalyse

Nach der Analyse des Quellcodes des KashiPairMediumRiskV1-Vertrags kommen wir zu dem Schluss, dass sich dieser Fehler in der borrow-Funktion befindet, die den veralteten exchangeRate zur Überprüfung des Borrow-Anteils im solvent-Modifier verwendet. Insbesondere wird die Überprüfung basierend auf dem aktuellen Wert von exchangeRate in der _isSolvent-Funktion durchgeführt.

Während in der liquidate-Funktion die updateExchangeRate-Funktion ganz am Anfang aufgerufen wird. Daher erfolgen die Überprüfung und Berechnung auf Basis des aktualisierten Wertes.

Offensichtlich könnte dieser Fehler ausgenutzt werden, um zu einer (riesigen) Preisdifferenz zu führen.

Angriffsanalyse

Wir beobachteten zwei Angriffe:

  1. 0xcf8f242ea83100b6d43e659f7f53a698d304fc6ac2ca6fe79e3e07ee05fefe58: Das Opfer verwendet den KashiPairMediumRiskV1-Vertrag, und der Verlust beträgt etwa 9.466 USDC.
  2. 0x3d163bfbec5686d428a6d43e45e2626a220cc4fcfac7620c620b82c1f2537c78: Das Opfer ist ein Strategievertrag, der CauldronMediumRiskV1 (die Abspaltung von KashiPairMediumRiskV1) verwendet, und der Verlust beträgt etwa 110.911 MIM.

Beachten Sie, dass die erste Angriffstransaktion von einem Bot gestartet wurde, der die ursprüngliche Angriffstransaktion vorwegnimmt: 0x7a845d8d2af7919f5b9e22dd5571305cb5347d17986a8402715c1463d515fc18, und die ursprüngliche Angreiferadresse lautet 0xb7ea0f0f8c6df7a61bf024db21bbe85ac5688005.

Hier nehmen wir die erste Angriffstransaktion als Beispiel, die aus folgenden Schritten besteht:

  1. Entleihen eines Flashloans von 40.900 BADGER und 121.904 USDC von Balancer.
  2. Einzahlung von 40.900 BADGER und 113.599 USDC in BentoBox.
  3. Aufruf der Funktion addCollateral von kmBADGER/USDC-LINK zur Einzahlung von 40.900.000.000.000.000.000.000.000.000.000 Anteilen von BADGER.
  4. Aufruf der Funktion addAsset von kmBADGER/USDC-LINK zur Einzahlung von 112.529.000.000 Anteilen von USDC.
  5. Aufruf der Funktion borrow, um 120.755.095.093 Anteile von USDC zu leihen.
  6. Aufruf der Funktion UpdateExchangeRate.
  7. Aufruf der Funktion liquidate, um sich selbst zu liquidieren.
  8. Abhebung von 40.899 BADGER und 123.006 USDC aus BentoBox.
  9. Rückzahlung des Flashloans und Erzielung eines Gewinns von ca. 9466 USDC.

Beachten Sie, dass Schritt 6 nicht notwendig ist, da die borrow-Funktion die UpdateExchangeRate-Funktion aufruft.

Die wichtigsten Schritte sind folgende:

Es ist nicht schwer zu erkennen, dass der Wert von exchangeRate, der in der borrow-Funktion verwendet wird, von dem Wert abweicht, der in der liquidate-Funktion verwendet wird:

  • In der borrow-Funktion: 250.997.938.545.109.237.740.214.705.193
  • In der liquidate-Funktion: 328.266.883.541.864.569.505.752.156.794

Die Auswirkungen

Es gibt Dutzende von Pools (sowohl auf Ethereum als auch auf BSC), die von diesem Fehler betroffen sein könnten. Eine vorläufige Methode zur Abmilderung dieses Problems besteht darin, die Abweichung durch gelegentliches (oder periodisches) Aufrufen der UpdateExchangeRate-Funktion zu reduzieren oder zu eliminieren. Diese Methode wurde bereits von vielen betroffenen Projekten übernommen, und die entsprechenden Transaktionen können in freier Wildbahn beobachtet werden.

Fazit

Die Sicherung eines DeFi-Projekts ist keine einfache Aufgabe. Neben der Code-Prüfung sollten wir unserer Meinung nach auf proaktive Weise den Projektstatus überwachen und Angriffe blockieren, bevor sie überhaupt stattfinden.

Über BlockSec

BlockSec ist ein wegweisendes Blockchain-Sicherheitsunternehmen, das 2021 von einer Gruppe weltweit anerkannter Sicherheitsexperten gegründet wurde. Das Unternehmen hat sich zum Ziel gesetzt, die Sicherheit und Benutzerfreundlichkeit für die aufkommende Web3-Welt zu verbessern, um deren Massenadoption zu fördern. Zu diesem Zweck bietet BlockSec Auditing-Dienste für Smart Contracts und EVM-Ketten, die Phalcon-Plattform zur proaktiven Entwicklung und Abwehr von Bedrohungen, die MetaSleuth-Plattform zur Nachverfolgung und Untersuchung von Geldern sowie die MetaDock-Erweiterung für Web3-Entwickler zum effizienten Surfen in der Kryptowelt an.

Bislang hat das Unternehmen über 300 namhafte Kunden wie MetaMask, Uniswap Foundation, Compound, Forta und PancakeSwap betreut und in zwei Finanzierungsrunden von namhaften Investoren wie Matrix Partners, Vitalbridge Capital und Fenbushi Capital zweistellige Millionenbeträge erhalten.

Offizielle Website: https://blocksec.com/

Offizieller Twitter-Account: https://twitter.com/BlockSecTeam

Sign up for the latest updates
~$15.9M Lost: Trusted Volumes & More | BlockSec Weekly
Security Insights

~$15.9M Lost: Trusted Volumes & More | BlockSec Weekly

This BlockSec bi-weekly security report covers 11 notable attack incidents identified between April 27 and May 10, 2026, across Sui, Ethereum, BNB Chain, Base, Blast, and Berachain, with total estimated losses of approximately $15.9M. Three incidents are analyzed in detail: the highlighted $1.14M Aftermath Finance exploit on Sui, where a signed/unsigned semantic mismatch in the builder-fee validation allowed an attacker to inject a negative fee that was converted into positive collateral during settlement; the $5.87M Trusted Volumes RFQ authorization mismatch on Ethereum; and the $5.7M Wasabi Protocol infrastructure-to-contract-control compromise across multiple EVM chains.

Newsletter - April 2026
Security Insights

Newsletter - April 2026

In April 2026, the DeFi ecosystem experienced three major security incidents. KelpDAO lost ~$290M due to an insecure 1-of-1 DVN bridge configuration exploited via RPC infrastructure compromise, Drift Protocol suffered ~$285M from a multisig governance takeover leveraging Solana's durable nonce mechanism, and Rhea Finance incurred ~$18.4M following a business logic flaw in its margin-trading module that allowed circular swap path manipulatio

~$7.04M Lost: GiddyDefi, Volo Vault & More | BlockSec Weekly
Security Insights

~$7.04M Lost: GiddyDefi, Volo Vault & More | BlockSec Weekly

This BlockSec weekly security report covers eight attack incidents detected between April 20 and April 26, 2026, across Ethereum, Avalanche, Sui, Base, HyperLiquid, and MegaETH, with total estimated losses of approximately $7.04M. The highlighted incident is the $1.3M GiddyDefi exploit, where the attacker did not break any cryptography or use a flash loan but simply replayed an existing on-chain EIP-712 signature with the unsigned `aggregator` and `fromToken` fields swapped out for a malicious contract, demonstrating how partial signature coverage turns any historical signature into a generic permit. Other incidents include a $3.5M Volo Vault operator key compromise on Sui, a $1.5M Purrlend privileged-role takeover, a $413K SingularityFinance oracle misconfiguration, a $142.7K Scallop cross-pool index injection, a $72.35K Kipseli Router decimal mismatch, a $50.7K REVLoans (Juicebox) accounting pollution, and a $64K Custom Rebalancer arbitrary-call exploit.

Best Security Auditor for Web3

Validate design, code, and business logic before launch. Aligned with the highest industry security standards.

BlockSec Audit