Back to Blog

Weniger einzahlen, mehr erhalten: yCREDIT Angriff Details

Code Auditing
January 3, 2021
3 min read

Am 2. Januar 2021 (07:25 Uhr Pekinger Zeit) meldete unser Überwachungssystem ThunderForecast eine Reihe verdächtiger Transaktionen in Richtung des yCREDIT Smart Contracts. Anschließend nutzten wir das von unserem Forschungsteam entwickelte EthScope-System, um diese Transaktionen zu analysieren und zu bestätigen, dass alle gemeldeten Transaktionen bösartig waren. In diesem Blog erläutern wir die Details des Angriffs.

Details

Der Angriff ist auf die Inkonsistenz der Anzahl der geprägten Token mit der beabsichtigten Anzahl zurückzuführen. Daher kann der Angreifer zu einem niedrigeren Preis deutlich mehr yCREDIT-Token erhalten. Diese Token können dann mit Gewinn verkauft werden.

Die anfällige Funktion befindet sich in der _deposit-Funktion des StableYieldCredit Contracts.

Im Folgenden werden wir eine Angriffstransaktion verwenden, um den gesamten Prozess zu veranschaulichen.

Der Angreifer übertrug zunächst 1e-8 WBTC und 331,335 yCredit-Token in den WBTC-yCREDIT Pair Pool. Dann zahlte der Angreifer 0,5 WBTC in den StableYieldCredit-Contract ein, um den Angriff zu starten.

Speziell wird der _value mit dem amount (0,5) des token (0x2260fac5e5542a773aa44fbcfedf7c193bc2c599 - WBTC) basierend auf dem Preis-Oracle-Anbieter ChainLink berechnet (Zeile 480, _value ist 1466786010075). Die Absicht ist, den Wert des eingezahlten WBTC in USD zu berechnen. Dann wird der Contract die Anzahl der yCREDIT-Token (_value - fee) an denjenigen übertragen, der den WBTC eingezahlt hat (den Angreifer). Das liegt daran, dass der Wert von yCREDIT gleich einem USD ist (wie vom System vorgesehen). Alles ist in Ordnung, abgesehen davon, dass der Angreifer einen kleinen Betrag an fee verliert.

Darüber hinaus wird der Contract den eingezahlten WBTC dem WBTC-yCREDIT Pair Pool hinzufügen. Das liegt daran, dass der eingezahlte WBTC an Liquidität verlieren würde, wenn er im Contract gesperrt wäre. Daher wurde zunächst der Wert des Token-Paares (WBTC zu yCREDIT), das in den Pool eingebracht werden soll, berechnet. Dieser Wert wird mit der Funktion _addLiquidity berechnet. Grundsätzlich wird er basierend auf den bestehenden Reserven im Pool berechnet. Da der Pool nur 1e-8 WBTC und 331,335 yCREDIT-Token enthält, beträgt der berechnete amountA 44 (amountB ist 1466786010075). Das bedeutet, der Angreifer gibt nur 44e-8 WBTC aus (Zeile 485) und erhält 14667,86010075 - fee = 14594,52080025 yCREDIT-Token (Zeile 493). Gleichzeitig verlassen eine kleine Menge WBTC (1e-8 + 44e-8) und (331,335 + 14667,86010075) yCREDIT-Token den Pool.

Um Gewinne zu erzielen, kann der Angreifer die erhaltenen 14594,52080025 yCREDIT-Token einfach an Börsen handeln. Interessanterweise ist der Prozess zur Gewinnmitnahme in dieser Transaktion weitaus komplizierter als nötig. Wir haben auch eine clevere Angriffsstrategie in anderen Transaktionen beobachtet.

An dem Angriff sind eine Reihe von Transaktionen beteiligt, darunter (aber nicht beschränkt auf) die folgenden.

Update

03.01.2020: Es gibt einen neuen Smart Contract, der die Schwachstelle behebt.

Zeitplan

  • 01.01.2021 23:25 UTC, Angriffe wurden von unserem System erfasst
  • 02.01.2021 16:20 UTC, dieser Blog wird veröffentlicht
Sign up for the latest updates
The Decentralization Dilemma: Cascading Risk and Emergency Power in the KelpDAO Crisis
Security Insights

The Decentralization Dilemma: Cascading Risk and Emergency Power in the KelpDAO Crisis

This BlockSec deep-dive analyzes the KelpDAO $290M rsETH cross-chain bridge exploit (April 18, 2026), attributed to the Lazarus Group, tracing a causal chain across three layers: how a single-point DVN dependency enabled the attack, how DeFi composability cascaded the damage through Aave V3 lending markets to freeze WETH liquidity exceeding $6.7B across Ethereum, Arbitrum, Base, Mantle, and Linea, and how the crisis forced decentralized governance to exercise centralized emergency powers. The article examines three parameters that shaped the cascade's severity (LTV, pool depth, and cross-chain deployment count) and provides an exclusive technical breakdown of Arbitrum Security Council's forced state transition, an atomic contract upgrade that moved 30,766 ETH without the holder's signature.

Weekly Web3 Security Incident Roundup | Apr 13 – Apr 19, 2026
Security Insights

Weekly Web3 Security Incident Roundup | Apr 13 – Apr 19, 2026

This BlockSec weekly security report covers four attack incidents detected between April 13 and April 19, 2026, across multiple chains such as Ethereum, Unichain, Arbitrum, and NEAR, with total estimated losses of approximately $310M. The highlighted incident is the $290M KelpDAO rsETH bridge exploit, where an attacker poisoned the RPC infrastructure of the sole LayerZero DVN to fabricate a cross-chain message, triggering a cascading WETH freeze across five chains and an Arbitrum Security Council forced state transition that raises questions about the actual trust boundaries of decentralized systems. Other incidents include a $242K MMR proof forgery on Hyperbridge, a $1.5M signed integer abuse on Dango, and an $18.4M circular swap path exploit on Rhea Finance's Burrowland protocol.

Weekly Web3 Security Incident Roundup | Apr 6 – Apr 12, 2026
Security Insights

Weekly Web3 Security Incident Roundup | Apr 6 – Apr 12, 2026

This BlockSec weekly security report covers four DeFi attack incidents detected between April 6 and April 12, 2026, across Linea, BNB Chain, Arbitrum, Optimism, Avalanche, and Base, with total estimated losses of approximately $928.6K. Notable incidents include a $517K approval-related exploit where a user mistakenly approved a permissionless SquidMulticall contract enabling arbitrary external calls, a $193K business logic flaw in the HB token's reward-settlement logic that allowed direct AMM reserve manipulation, a $165.6K exploit in Denaria's perpetual DEX caused by a rounding asymmetry compounded with an unsafe cast, and a $53K access control issue in XBITVault caused by an initialization-dependent check that failed open. The report provides detailed vulnerability analysis and attack transaction breakdowns for each incident.

Best Security Auditor for Web3

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

BlockSec Audit