Дубли payment hash в BOLT11-инвойсах: расхождение библиотек уже привело к краже средств у LN-сервиса
Инвойс BOLT11 мог содержать несколько payment hash, и разные библиотеки брали разные из них: одни первый, другие последний. Если в системе сочетались обе трактовки, она считала выплату несостоявшейся после фактической оплаты, что позволяло вычерпывать баланс повторными выводами. По описанию в посте, именно так был взломан популярный Telegram P2P-бот и потеряны средства. Предложено изменение спецификации, отклоняющее инвойсы с более чем одним payment hash; обновлены тест-векторы.
Что делать: Проверьте, как ваш стек парсит BOLT11: сравните поведение всех используемых библиотек и узла на инвойсе с несколькими payment hash. Отклоняйте такие инвойсы на входе и всегда сверяйте оплаченный хеш с тем, который ожидали, прежде чем считать выплату неуспешной. Проверьте логи автоматических выводов на расхождения между заявленными и реально проведёнными платежами. Подробности изменения спецификации — по ссылкам ниже.
Источники:
- github.com
- stacker.news
Подробнее: sec.21ideas.org
#операторы_нод #разработчики #мерчанты #эксплуатация_подтверждена
Post #25
63
- 😁 1