Аудит вне рамок - 4
Интересная логическая ошибка, которая была найдена в протоколе NounsDAO.
Работая со временем, аудитор должен изучать все проверки времени. Очень часто бывает, когда разработчики предусматриваю развитие ситуации только в одном ключе.
Обращаем внимание при аудите
Если в контракте есть функции, которые учитывают тайминг (когда событие может начаться, когда оно должно закончиться, и что происходит при его отмене), то аудитор должен иметь ввиду, что указание временных рамок должно проходить все необходимые проверки.
Как например в данном баге, при создании события stoptime не должен быть меньше block.timestamp, иначе событие будет невозможно отменить в будущем.
Более того, при работе со временем разработчики зачастую упускают тот факт, что пользователь может создать метки времени в прошлом, что может привести к критическим уязвимостям.
#audit #outofbox
Post #731
462
- ❤ 1