Аудит вне рамок - 1
Посмотрите на данный отчет о найденной уязвимости в контрактах проекта Ajna.
Когда пользователь закрывает свой стейкинг, то система удаляет информацию о takes[tokenId_], однако упускает удаление snapshot, который хранится в маппинге в структуре StakeInfo. В конечном итоге это может привести к тому, что хакер, зная об этой уязвимости, может использовать информацию из не удаленного snapshot повторно для получения extra rewards.
Если нужны детали, можете смело погружаться в отчет. Я лишь хочу отметить вот что.
Обращаем внимание при аудите
Если при стейкинге используются сложные структуры и маппинги, где сохраняются дополнительные данные, как например snapshot, то следует проверять функции в коде на предмет обновления всех необходимых данных. Если удаляется основа - должны удалять и остальные связанные данные, то же с обновлением и созданием.
Т.е. в началае аудита фиксируем в голове, блокноте или комментарии в коде, какие параметры за что отвечают и когда должны обновляться.
#audit #outofbox
Post #720
421
- ❤ 4