TGViewer
Из Solidity в AI и дальше Из Solidity в AI и дальше @solidityset · 2.47K subscribers
Post #596 302
Signature Malleability 2

Ну, и еще одна уязвимость от того же автора из Твиттер.

Посмотрите на скрин. Вероятно, вы видели или сами реализовывали такое восстановление подписи у себя в контракте.

Но тут чего-то не хватает?

А точнее, тут не хватает валидации S значения!

if (uint256(s) > 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0 ) {
     return (address(0), RecoverError.InvalidSignatureS);
}

Если открыть контракт от OpenZeppelin, то там увидите довольно большой комментарий, зачем нужна проверка этого значения.

Из-за особенностей работы системы, сюда вы можете передать две разные подписи (с одинаковым подписанным сообщением) и получить один и тот же восстановленный адрес!

В этой ветке дается объяснения почему это происходит, и как это связано с EIP2 и secp256k1n/2. Спойлер: особенности шифрования.

Как я понял, вообще нужно быть очень аккуратными и внимательными с этими подписями и их восстановлением.

#security #signature #eip2
  • 👍 1
More from @solidityset
  1. Oct 8, 2026Промо видео для SaaS и других ваших проектов Хочу поделить с вами одним из своих открытий…
  2. Oct 8, 2026video post
  3. Oct 2, 2026Вторая сложность — как доказать, что установилось именно опубликованное. В первом варианте…
  4. Oct 2, 2026Задача с полуоткрытым кодом На днях, в процессе создания одного приложения, столкнулся с и…
  5. Sep 22, 2026Какой язык программирования учить сейчас? На днях в Твиттере увидел небольшой пост о разви…
  6. Sep 18, 2026Интересная модель Jev Буквально пару дней назад в Твиттере многие начали обсуждение новой…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →