Хакер #305. Многошаговые SQL-инъекции
В ночь с 16 на 17 января 2019 года должен был состояться Ethereum Constantinople, запланированный на блок 7 080 000. Однако эксперты компании ChainSecurity, занимающейся аудитом смарт-контрактов, сообщили об обнаружении серьезной уязвимости в обновлении EIP-1283, из-за чего хардфорк был срочно отложен как минимум до 18 января.
В официальном блоге эксперты ChainSecurity описывают найденную проблему как reentrancy-уязвимость, она же рекурсивный вызов. Баг заключается в том, что уязвимый контракт совершает вызов к другому контракту, при этом внешний контракт может делать ответный вызов функций уязвимого контракта внутри начального вызова. Эксперты объясняют, что проблема могла позволить потенциальным злоумышленникам похитить средства пользователей. По словам специалистов, в 2016 году похожая проблема стоила инвестиционному проекту DAO десятков миллионов долларов.
Согласно данным разработчиков Ethereum, в настоящее время специалисты ChainSecurity и TrailOfBits проводят тщательный анализ блокчейна Ethereum, но пока не было найдено никаких следов эксплуатации уязвимости и уязвимых смарт-контрактов. Разработчики уже подготовили обновления для Go-Ethereum (Geth) и Parity, которые призваны предотвратить грядущий хардфорк.