Według raportów dwie operacje mintfCashPair utworzyły zobowiązanie fCash o wartości 2^128, które niebezpieczna konwersja do uint128 sprowadziła do zera podczas wyceny zabezpieczenia. Z escrow miało wypłynąć około 69 257 DAI i 1 650 824 USDC; środki zamieniono następnie na około 689,2 ETH i przesłano do Tornado Cash.
Opublikowane przezEdytowane za pomocą GPT-5.6 TerraObrazy wygenerowane za pomocą GPT Image 2
Research answer

Create a landscape editorial hero image for this Studio Global article: How did an attacker exploit an unsafe uint128 downcast/integer-overflow flaw in Notional Finance’s legacy Ethereum V1 escrow contract on Sep. Article summary: The reported exploit abused a legacy V1 accounting path: the attacker created an fCash liability at the `2^128` boundary, then an unsafe cast to `uint128` truncated that liability to zero during free-collateral valuation. Topic tags: general, general web, user generated, government, documentation. Style: premium digital editorial illustration, source-backed research mood, clean composition, high detail, modern web publication hero. Use reference image context only for broad subject, composition, and topical grounding; do not copy the exact image. Avoid: logos, brand marks, copyrighted characters, real person likenesses, fake screenshots, UI text, readable text,
To nie był typowy przypadek niedostatecznego zabezpieczenia. Według publicznych rekonstrukcji problemem w Notional Finance V1 miała być niespójność księgowa: utworzono gigantyczny dług fCash na granicy 2^128, a następnie w kluczowym etapie wyliczania wolnego zabezpieczenia został on zredukowany do zera przez zawężenie typu do uint128. Jeśli system zapisywał zobowiązanie jako zero, konto mogło pozornie spełniać warunki wypłaty aktywów, do których nie powinno mieć dostępu. 4
16
Rekonstrukcja opiera się na monitoringu on-chain i ustaleniach badaczy bezpieczeństwa, a nie na opublikowanym raporcie po incydencie od zespołu protokołu. Transfery środków można obserwować w blockchainie, lecz pełna sekwencja wywołań, ostateczna skala szkód i status działań naprawczych nie były wówczas oficjalnie potwierdzone. 3
4
W Notional V1 przyszłe zobowiązania pieniężne reprezentowano tokenami fCash. Zgodnie z alertem CertiK atakujący wykonał dwa wywołania mintfCashPair(), tworząc zobowiązanie -2^128. Podczas wyceny wolnego zabezpieczenia niebezpieczna konwersja do uint128 miała obciąć tę wartość do 0. 16
W praktyce opisywany scenariusz wyglądał następująco:
uint128.Dlatego trafniej mówić tu o błędzie zawężającej konwersji i naruszeniu niezmiennika księgowego niż po prostu o „przepełnieniu licznika”. Kluczowym skutkiem miało być przekształcenie ujemnego zobowiązania w zero dokładnie w ścieżce wyceny, która powinna blokować wypłatę z niedostatecznie zabezpieczonego konta. 4
16
Raporty on-chain szacowały stratę na około 69 257 DAI i 1 650 824 USDC, czyli łącznie około 1,728 mln USD. Aktywa miały zostać zamienione na około 689,2 ETH, a następnie wpłacone do Tornado Cash. 2
15
W raportach wskazano kontrakt escrow Notional Finance pod adresem 0x9abd0b8868546105F6F48298eaDC1D9c82f7f683. Jedno z doniesień opisywało transakcję przygotowawczą z adresu kończącego się na Ce38, wysłaną 3 września 2026 r. o 23:58:47 UTC, oraz transakcję opróżniającą kontrakt wykonaną około trzy minuty później, już 4 września. 17
23
Badacze połączyli z przepływem środków dwa adresy Ethereum:
0xC954…De690xDaCC…Ce38To przypisanie w ramach analizy on-chain, a nie potwierdzona identyfikacja konkretnej osoby, organizacji ani faktycznego właściciela portfeli. 11
Zamiana DAI i USDC na ETH zmieniła sytuację z punktu widzenia śledzenia środków. Początkowe transfery stablecoinów były widoczne w sieci Ethereum, natomiast konwersja przeniosła wartość do ETH. Późniejsze wpłaty do Tornado Cash dodały warstwę prywatności, której celem jest zaciemnienie powiązań między źródłem, celem i stronami transakcji. 2
29
Nie oznacza to, że analiza blockchaina staje się niemożliwa ani że można na tej podstawie wskazać kontrolującego późniejszą wypłatę. Oznacza jednak, że bezpośredni ślad prowadzący od wykorzystanego escrow do późniejszego odbiorcy staje się wyraźnie mniej jednoznaczny, gdy środki trafiają do miksera. 29
W czasie opisywanych raportów Notional nie opublikował publicznej odpowiedzi na incydent. Otwarte pozostawały między innymi pytania o:
Opisywaną przyczynę należy więc traktować jako mocną, ale nadal wstępną rekonstrukcję — nie jako zastępstwo audytowanego post-mortem lub oficjalnego raportu z incydentu.
Stary kontrakt nie staje się bezpieczny tylko dlatego, że nie jest już centralnym elementem rozwoju produktu. Jeśli nadal przechowuje aktywa albo ma dostęp do mintowania, rozliczeń, kontroli zabezpieczenia czy wypłat, pozostaje aktywną powierzchnią ataku finansowego.
Dla zespołów rozwijających protokoły DeFi ten przypadek podkreśla potrzebę łącznej weryfikacji kilku zabezpieczeń:
2^128;Szerszy wzorzec jest w DeFi dobrze znany: niewielki błąd reprezentacji danych lub autoryzacji może przerodzić się w pełną utratę środków, jeśli prowadzi do ścieżki wypłaty płynnych aktywów. Obrona nie powinna więc ograniczać się do audytu pojedynczych funkcji — konieczne jest wykazanie, że niezmienniki księgowe systemu obowiązują w każdej osiągalnej sekwencji wywołań.
Studio Global AI
This page includes a source-backed answer you can continue inside Studio Global.
Według raportów dwie operacje mintfCashPair utworzyły zobowiązanie fCash o wartości 2^128, które niebezpieczna konwersja do uint128 sprowadziła do zera podczas wyceny zabezpieczenia.
Według raportów dwie operacje mintfCashPair utworzyły zobowiązanie fCash o wartości 2^128, które niebezpieczna konwersja do uint128 sprowadziła do zera podczas wyceny zabezpieczenia. Z escrow miało wypłynąć około 69 257 DAI i 1 650 824 USDC; środki zamieniono następnie na około 689,2 ETH i przesłano do Tornado Cash.
Przypadek pokazuje, że starsze kontrakty DeFi pozostają krytycznym punktem ryzyka, jeśli nadal przechowują aktywa lub obsługują wypłaty i rozliczenia.