Хакеры вывели 1М$ просто переводя деньги на собсвенный аккаунт в Stader (наши конкуренты по ликвилному стейкингу в NEAR).
В нире при чтении объекта из стейта контракта создается копия. Ребята вычли баланс из копии1, потом прибавили к копии2 (тк перевод сам себе) и благополучно записали в контракт копию2.
Удивительно, что при отсутствии денег на нормального rust разрабочтка у них хватило денег купить 3 сертификата аудита безопасности у таких же талантов.
Реализация метода чтения из стейта контракта если что в near-sdk в 3 строки, думаю даже студента первого курса смутило бы наличие там "copy_from_slice"
полный разбор
В нире при чтении объекта из стейта контракта создается копия. Ребята вычли баланс из копии1, потом прибавили к копии2 (тк перевод сам себе) и благополучно записали в контракт копию2.
Удивительно, что при отсутствии денег на нормального rust разрабочтка у них хватило денег купить 3 сертификата аудита безопасности у таких же талантов.
Реализация метода чтения из стейта контракта если что в near-sdk в 3 строки, думаю даже студента первого курса смутило бы наличие там "copy_from_slice"
полный разбор