Back to Blog

$17 Mio. Closed-Source Smart Contract Exploit: Arbitrary-Call-Schwachstelle in SwapNet und Aperture Finance

Code Auditing
January 28, 2026
5 min read

Am 25. Januar 2026 erkannten wir eine Reihe von verdächtigen Transaktionen, die auf von SwapNet und Aperture Finance bereitgestellte Opferverträge auf Ethereum, Arbitrum, Base und BSC abzielten, mit Gesamtschäden von über 17 Millionen US-Dollar. Auf hoher Ebene ist die Grundursache beider Vorfälle einfach und wurde bereits in unseren anfänglichen Warnungen [1, 2] dargelegt: Die Opferverträge weisen aufgrund unzureichender Eingabevalidierung eine beliebige Aufruffunktion auf, die es Angreifern ermöglicht, bestehende Token-Genehmigungen zu missbrauchen und transferFrom aufzurufen, um Vermögenswerte abzuzweigen.

Beide Sätze von Opferverträgen sind jedoch Closed-Source und umfassen nach der Dekompilierung Tausende von Codezeilen mit tief verschachtelter und komplexer Verzweigungslogik, was die Analyse erheblich erschwert. Darüber hinaus konzentrierten sich die nachfolgenden Post-Mortems, die von den betroffenen Projekten veröffentlicht wurden [3, 4], hauptsächlich auf Sanierungs- und Wiederherstellungsmaßnahmen mit begrenzter Diskussion der zugrunde liegenden technischen Details. Infolgedessen bleiben mehrere wichtige Fragen unbeantwortet, darunter, wie die anfälligen Aufrufpfade konstruiert wurden und warum bestehende Prüfungen die Ausnutzung nicht verhinderten.

In diesem Bericht liefern wir eine detailliertere technische Analyse auf Basis dekompilierter Bytecodes und On-Chain-Ausführungsspuren. Obwohl das Fehlen von Quellcode die Sichtbarkeit einschränkt, ist die Analyse auf Bytecode-Ebene ausreichend, um die anfällige Logik zu rekonstruieren, und offenbart mehrere interessante Beobachtungen über das Vertragsdesign, die aus den High-Level-Warnungen nicht sofort ersichtlich sind.

Wir beginnen mit einer eingehenden Untersuchung des SwapNet-Vorfalls, gefolgt von einer detaillierten Analyse des Aperture Finance-Vorfalls.


SwapNet-Vorfall

Hintergrund

SwapNet [5] ist ein DEX-Aggregator, der entwickelt wurde, um optimale Swap-Routen zu finden, indem die Liquidität aus mehreren On-Chain-Quellen, einschließlich AMMs und privaten Market Makern, aggregiert wird. Das Protokoll ermöglicht es Benutzern auch, benutzerdefinierte Router oder Pools bei der Ausführung von Swaps anzugeben, was zusätzliche Flexibilität bietet.

Ursachenanalyse

Dieser Vorfall beruht auf unzureichender Validierung von vom Benutzer bereitgestellten Eingaben, die es einem Angreifer ermöglicht, transferFrom()-Aufrufe mit beliebigen Parametern auszulösen. Infolgedessen konnten Vermögenswerte, die zuvor für die Opferverträge genehmigt worden waren (z. B. 0x616000e384Ef1C2B52f5f3A88D57a3B64F23757e), an den Angreifer übertragen werden.

Basierend auf dekompiliertem Bytecode scheint die Funktion 0x87395540() keine ordnungsgemäße Validierung kritischer Eingaben aufzuweisen. Durch den Austausch der erwarteten Router- oder Pooladresse durch eine Token-Adresse (z. B. USDC) behandelt der Vertrag den Token fälschlicherweise als gültiges Ausführungsziel. Dies führt zur Ausführung eines Low-Level-Aufrufs mit vom Angreifer kontrollierten Calldata.

Folglich führt der Opfervertrag Aufrufe der Form aus: approvedAsset.transferFrom(victim, attacker, amount), wodurch der Angreifer alle genehmigten Vermögenswerte abziehen kann.

Angriffsfluss

Gegen SwapNet wurden mehrere Angriffe beobachtet. Hier verwenden wir die Base-Transaktion 0xc15df1d131e98d24aa0f107a67e33e66cf2ea27903338cc437a3665b6404dd57 als Beispiel.

Der Angreifer rief einfach die Funktion 0x87395540() des Opfervertrags mit bösartigen Eingaben auf. Dieser Aufruf besteht aus zwei Hauptschritten.

  1. Eine interne Schlüsselvariable (z. B. v51) wurde auf USDC gesetzt, wodurch die beabsichtigte Routing-Logik umgangen wurde.
  1. Ein Low-Level-Aufruf wurde unter Verwendung von vom Angreifer kontrolliertem Calldata ausgeführt, was zur Ausführung von USDC.transferFrom() und dem Abzug aller genehmigten USDC führte.

Verlustzusammenfassung, Transaktionen und betroffene Verträge

Der SwapNet-Vorfall verursachte schätzungsweise einen Schaden von ca. 13,41 Millionen US-Dollar über mehrere Ketten hinweg. Die folgenden Tabellen fassen die wichtigsten Exploit-Transaktionen und die beteiligten Opfervertragsadressen zusammen.


Aperture Finance-Vorfall

Hintergrund

Aperture Finance [6] ist ein DeFi-Protokoll, das im Namen der Benutzer konzentrierte Liquiditätspositionen verwaltet, wie z. B. Uniswap V3 LPs. Seine Closed-Source-Verträge (z. B. 0xD83d960deBEC397fB149b51F8F37DD3B5CFA8913) ermöglichen es Benutzern, Uniswap V3-Positionen mit nativen Token zu prägen und zu verwalten.

Beabsichtigter Arbeitsablauf zur Prägung von UniswapV3-Positionen

Bei der Prägung von Uniswap V3-Positionen über die Funktion 0x67b34120() folgt der Vertrag einem beabsichtigten dreistufigen Arbeitsablauf:

  1. Native Token verpacken.

  2. Native Token über die interne Funktion 0x1d33() tauschen.

  3. UniswapV3-Positionen prägen.

Das Problem tritt in Schritt 2 auf: 0x1d33() führt einen kundenspezifischen Swap über einen Low-Level-Aufruf durch, bei dem kritische Parameter (z. B. das Aufrufziel und die Calldata) benutzergesteuert und unzureichend validiert zu sein scheinen, was unbeabsichtigte externe Aufrufe ermöglicht. Weitere Details finden Sie in den folgenden Abschnitten.

Ursachenanalyse

Ähnlich wie beim SwapNet-Fall ist der Aperture Finance-Vorfall auf unzureichende Eingabevalidierung bei Low-Level-Aufrufen zurückzuführen. Wenn 0x67b34120() aufgerufen wird, führt die interne Funktion 0x1d33() einen Low-Level-Aufruf unter Verwendung von vom Benutzer bereitgestellten Calldata aus, ohne strenge Einschränkungen für das Aufrufziel oder den Funktionsselektor durchzusetzen.

Wie die folgende Abbildung zeigt, basieren die Calldata, die zum Auslösen des Low-Level-Aufrufs verwendet werden, ausschließlich auf den Eingaben des Angreifers.

Dies ermöglicht es Angreifern, bösartige Calldata zu erstellen, die zu approvedToken.transferFrom(victim, attacker, amount) im Kontext des Opfervertrags führen. Infolgedessen können nicht nur ERC20-Token, sondern auch genehmigte Uniswap V3-Position-NFTs abgezogen werden.

Angriffsfluss

Gegen Aperture Finance wurden mehrere Angriffe beobachtet. In diesem Abschnitt verwenden wir die Ethereum-Transaktion 0x8f28a7f604f1b3890c2275eec54cd7deb40935183a856074c0a06e4b5f72f25a als repräsentatives Beispiel.

  1. Der Angreifer erstellte einen Angriffsvertrag 0x5c92884dFE0795db5ee095E68414d6aaBf398130.

  2. Der Angriffsvertrag rief die Funktion 0x67b34120() mit bösartigen Eingaben und 100 Wei ETH (d. h. msg.value == 100) auf.

a) Die nativen ETH wurden über die Funktion WETH.deposit() in WETHs verpackt.

b) Die interne Funktion 0x1d33() wurde aufgerufen, um einen Low-Level-Aufruf durchzuführen. In diesem Schritt wird ein Aufruf von WBTC.transferFrom(victim, attacker, amount) im Kontext des Opfervertrags aufgerufen, wodurch der Angreifer genehmigte Token abziehen kann. Es ist erwähnenswert, dass am Ende der Funktion 0x1d33() eine Bilanzprüfung bestanden wurde. Insbesondere verglich die Funktion 0x1d33() die Bilanzänderungen mit einem vom Angreifer spezifizierten Swap-Ausgabewert (d. h. varg2.word2). Infolgedessen wurden sie erfolgreich ausgeführt, ohne etwas zu erhalten.

  1. Zuletzt wurde die Funktion NonfungiblePositionManager.mint() aufgerufen, um eine Position für den Angreifer unter Verwendung von 100 Wei WETH zu prägen.

Interessante Erkenntnisse

Durch den Vergleich von normalen und abnormalen Prägungs-Transaktionen stellten wir fest, dass sowohl zugelassene Token für denselben Spender (z. B. OKX DEX: TokenApprove) aufgeführt wurden, aber unterschiedliche Router-Adressen (d. h. DexRouter und WBTC) angegeben wurden. Dies deutet darauf hin, dass der Vertrag möglicherweise eine Validierung des Genehmigungsgebers erzwingt, aber versäumt, das tatsächliche Ausführungsziel zu validieren, was eine kritische Lücke hinterlässt, die durch beliebige Aufrufe ausgenutzt werden kann.

Normale Transaktion: https://app.blocksec.com/phalcon/explorer/tx/eth/0xc823b703c716fa9078e1d71714b734557bd540ddd1e41590dd73da7c5aba0200

Abnormale Transaktion: https://app.blocksec.com/phalcon/explorer/tx/eth/0x8f28a7f604f1b3890c2275eec54cd7deb40935183a856074c0a06e4b5f72f25a

Verlustzusammenfassung, Transaktionen und betroffene Verträge

Der Aperture Finance-Vorfall führte zu einem geschätzten Gesamtschaden von ca. 3,67 Millionen US-Dollar über mehrere Ketten hinweg. Die folgenden Tabellen fassen die wichtigsten Exploit-Transaktionen und die zugehörigen Opfervertragsadressen zusammen.


Fazit

Obwohl die Vorfälle SwapNet und Aperture Finance unterschiedliche Protokolle und Ketten betrafen, ist das zugrunde liegende Problem in beiden Fällen nicht komplex: benutzergesteuerte Low-Level-Aufrufe in Kombination mit unzureichender Eingabevalidierung in Verträgen, die Token-Genehmigungen halten. Diese Vorfälle erinnern uns daran, dass Flexibilität im Vertragsdesign sorgfältig mit strengen Aufrufbedingungen abgewogen werden muss, insbesondere in Closed-Source-Systemen, in denen die externe Überprüfung begrenzt ist.

Referenz

[1] https://x.com/Phalcon_xyz/status/2015614087443697738

[2] https://x.com/Phalcon_xyz/status/2015624519898234997

[3] https://meta.matcha.xyz/SwapNet-Incident-Post-Mortem

[4] https://x.com/ApertureFinance/status/2015938720453820752

[5] https://x.com/0xswapnet

[6] https://x.com/ApertureFinance

Über BlockSec

BlockSec ist ein Full-Stack-Anbieter für Blockchain-Sicherheit und Krypto-Compliance. Wir entwickeln Produkte und Dienstleistungen, die Kunden bei der Durchführung von Code-Audits (einschließlich Smart Contracts, Blockchain und Wallets), der Echtzeit-Abwehr von Angriffen, der Analyse von Vorfällen, der Rückverfolgung illegaler Gelder und der Erfüllung von AML/CFT-Verpflichtungen über den gesamten Lebenszyklus von Protokollen und Plattformen hinweg unterstützen.

BlockSec hat mehrere Blockchain-Sicherheitsarbeiten auf renommierten Konferenzen veröffentlicht, mehrere Zero-Day-Angriffe auf DeFi-Anwendungen gemeldet, mehrere Hacks zur Rettung von mehr als 20 Millionen Dollar blockiert und Kryptowährungen im Wert von Milliarden gesichert.

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