Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

GovernorCountingOverridable allows abstain-only quorum and zero-opinionated-vote pass

オープン
#654 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
5/5
見積もり時間
1週間以上
初心者へのやさしさ
25/100
issue の種類
バグ
明瞭さ
説明が足りない
活発さ
静か
技術スタック
solidity

調査の方向性

contracts/treasury/GovernorCountingOverridable.sol から始め、特に 119 行目付近の _voteSucceeded と、125 行目付近の MathUtils.percOf の計算を確認してください。レポートは既知のスコープ外の挙動を説明していますが、要求される変更、テストパス、受け入れ基準のいずれも示していないため、意図された修正と Definition of Done は未解決です。

索引モデルが issue の本文から書いたものです。

説明

known-issue
Summary

LivepeerGovernor contract allows proposals with zero opinionated votes to succeed. Moreover, even a proposal with 1 wei "against" and 0 "for" votes can succeed if it reaches quorum via "abstain" votes.

Root causes
  • Rounding down is introduced when calculating MathUtils.percOf(opinionatedVotes, quota).
  • The >= equation used to compare forVotes with the quorum-adjusted opinionatedVotes evaluates to, for example, 0 >= 0, and therefore results in _voteSucceeded returning true.
Why it's not an issue
  • Using "abstain" votes to reach a quorum is known and expected behavior.
  • The rounding issue has an impossibly low likelihood of being exploitable: the enforced voting period (currently set to 10 rounds) gives all participants sufficient time to cast opinionated votes and prevent any malicious proposal from passing.
  • The issue is mitigated in real life by having as few as 2 wei more "against" votes than "for" votes.
Out of scope for bug bounty

Reports targeting GovernorCountingOverridable._voteSucceeded via abstain-only voting, zero-opinionated voting, or equal for/against voting are closed as known issues and not eligible for rewards under the Livepeer Immunefi bug bounty program.

References
主要言語
JavaScript
スター
156
フォーク
50
平均マージ
9日 22時間
マージ済み PR(30日)
1

環境構築

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

livepeer/protocol のほかの issue

livepeer/protocol の issue をすべて見る

似ている issue

JavaScript の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。