Finst

Notional Finance traci 1,73 mln $ przez błąd w kontrakcie V1

Atak dotknął stary kontrakt escrow na Ethereum; łup zamieniono na ETH i przeniesiono przez Tornado Cash. Incydent podkreśla ryzyko związane z legacy smart contracts, także po wcześniejszych audytach.

Notional Finance traci 1,73 mln $ przez błąd w kontrakcie V1

Najważniejsze informacje

  • Notional Finance stracił około 1,73 mln $ w wyniku exploita w starym kontrakcie escrow V1.
  • Błąd konwersji raw uint128 pozwolił zarejestrować sfabrykowany dług jako zero, co umożliwiło atakującemu wypłatę środków.
  • Skradzione DAI i USDC zamieniono na około 689 ETH, a następnie przeniesiono przez Tornado Cash.

Notional Finance został w piątek zaatakowany przez exploit, w ramach którego napastnik wyprowadził ze starego kontraktu escrow około 1,73 mln $ (1,5 mln €). Atak opierał się na błędzie w kodzie V1, przez który ogromny sfabrykowany dług został zarejestrowany jako zero. Skradzione DAI i USDC następnie zamieniono na około 689 ETH i przeniesiono przez Tornado Cash.

Błąd w starym kodzie

Notional Finance to fixed-rate lending protocol na Ethereum. W pierwszej wersji system działał z fCash, czyli sposobem na zapisywanie przyszłych zobowiązań pieniężnych. Przy dodatkowych pożyczkach protokół najpierw sprawdzał, czy użytkownik ma wystarczające zabezpieczenie.

Według analizy QuillAudits problem pojawił się przy konwersji raw uint128 w tym sprawdzeniu. Dwie transakcje mint łącznie dały dokładnie 2 do potęgi 128, a to wartość, która przy takiej konwersji zamienia się na zero. W efekcie konto nagle wyglądało na wolne od długu, choć w rzeczywistości tak nie było. Bezpieczniejszy test był już wcześniej używany w tym samym pliku w innym miejscu.

Etherscan pokazuje, że plan został przygotowany w czwartek o 23:58 UTC, a trzy minuty później nastąpiła wypłata. W jej ramach z escrow wycofano 69.257 DAI i 1.658.524 USDC. Atakujący przekazał też 0,07 ETH napiwku do block buildera Titan, aby transakcja została przetworzona prywatnie.

Stary kontrakt trzymał środki

Warto zwrócić uwagę, że chodziło o legacy contract, który nadal przechowywał realną wartość. Notional wycofał już swoją trzecią wersję po exploicie Balancer z listopada 2025 roku, ale kontrakty V1 pozostały aktywne i finansowane. Nikt nie wypłacił tych środków.

Atak wpisuje się w szerszy wzorzec, w którym błędy w smart contracts mogą powodować poważne straty. Podobny przypadek miał miejsce w 2018 roku w BeautyChain, gdzie błąd overflow doprowadził do ogromnego wybicia tokenów i załamania ich wartości. Trasa przez Tornado Cash pokazuje też, jak trudno może być później śledzić skradzione krypto.

Dlaczego to ważne

Dla europejskich czytelników crypto jest to istotne przede wszystkim dlatego, że pokazuje, iż stare kontrakty mogą stanowić trwałe ryzyko, nawet jeśli protokół został później zmieniony lub częściowo wycofany. Wcześniejszy audyt nie daje wtedy automatycznej ochrony przed błędem, który nadal istnieje w starszej wersji. W momencie publikacji Notional nie udostępnił jeszcze publicznego oświadczenia, raportu o stratach ani post-mortem.


Zastrzeżenie: Treść ma charakter wyłącznie informacyjny i nie stanowi porady finansowej, inwestycyjnej, prawnej ani podatkowej. Podane informacje mogą być niekompletne, nieścisłe lub nieaktualne i nie powinny być traktowane jako wiążące. Żadne treści na tej stronie nie stanowią rekomendacji kupna, sprzedaży ani przechowywania jakiejkolwiek kryptowaluty. Inwestowanie w aktywa kryptograficzne wiąże się z ryzykiem utraty środków.