Käytin vain hetken tarkistaakseni 9 miljoonan dollarin @yearnfi hyökkäyksen. Vaikka useimmat huomauttavat, että hakkeri teki valtavan määrän yethiä muutamalla wei-tokenilla (P1), mielestäni tämä ei ole ainoa juurisyy. Miksi? Hakkeri EI itse asiassa vetänyt pois lyötyä yethia, vaan myi vain osan siitä yETH-ETH-poolissa 1000 ETH:llä (~3M), paljon vähemmän kuin hakkerin todellinen voitto (P2). Mielestäni on kaksi juurisyitä (tai hyökkäysvektoreita): (Vastuuvapauslauseke: Se on vain analyysi, joka perustuu alustavaan analyysiini. Saatan ja joskus teen virheitä!) (1) pyöristysvirhe johti lähes äärettömän yETH:n lyömiseen. Tämä on itse asiassa samanlainen kuin tasapainottimen hakkerointi. Skaalauskerroin (yETH:ssa kutsutaan rateeksi) on noin 1e18+x% luku, ja kertolasku saa virtuaalisen tasapainon katkaisemaan invariantit. Koodi käyttää pyöristettyä virtuaalisaldoa laskeakseen uuden yETH:n kokonaismäärän ja lyödyn (new_supply - old_supply) hyökkääjälle (P3). (2) update_rate toiminto johti yETH-holvin suureen menetykseen Itse asiassa hyökkääjä huusi "update_rates" kahdesti paketoidussa OETH:ssa, ja yETH menetti kirjaimellisesti ~1000 ETH joka kerta (missä yETH poltettiin st-yeth vaultista, P4). -> 6M tappio. Lisäksi myyty yETH:n yhteenlaskettu voitto nousee ~9 miljoonaan. Tämä saattoi johtua invariantin väärästä laskennasta eikä pelkästä pyöristysvirheestä. ---- Päivitän tämän twiitin kommenttissa, jos minulla on uutta ymmärrystä tästä hyökkäyksestä.
@yearnfi Päivitys (1), minut bannattiin, koska yritin tarjota apuani @yearnfi:n Discordissa 🤣
@yearnfi Päivitys, yllä oleva linkki ei ole virallinen yksityisviesti. Mutta mielestäni se paljastaa jo juurisyyn ja osoittaa haavoittuvan koodin.
28,61K