.@OnyxDAO diserang, mengakibatkan kerugian hampir $4 juta. Akar penyebabnya adalah masukan pengguna yang tidak terverifikasi selama proses likuidasi. Secara khusus, parameter utama fungsi liquidateWithSingleRepay dalam kontrak NFTLiquidation dapat dikontrol oleh penyerang, yang memungkinkan manipulasi variabel extraRepayAmount melalui parameter repayAmount. Dengan memanfaatkan ini, penyerang dapat melikuidasi semua agunan hanya dengan satu token.

Langkah-langkah serangan utama dirangkum sebagai berikut:
1. Penyerang pertama-tama menyetorkan oETH dan meminjam berbagai aset untuk mencapai ambang batas likuidasi. Secara bersamaan, mereka membuat kontrak baru yang, melalui serangan donasi dan kerugian presisi (inheren dari fork Compound V2), mengurangi nilai tukar oETH, sehingga posisi penyerang memenuhi syarat untuk dilikuidasi.
2. Penyerang kemudian melakukan likuidasi. Karena validasi parameter tidak memadai, penyerang memanipulasi variabel extraRepayAmount, yang ditambahkan ke perhitungan berapa banyak token yang perlu dilikuidasi. Hal ini memungkinkan penyerang memperoleh lebih banyak oETH melalui likuidasi, yang menghasilkan keuntungan.

Serangan Tx: