GovernorCountingOverridable allows abstain-only quorum and zero-opinionated-vote pass
まだ誰も着手していません。
評価
- 難易度
- 5/5
- 見積もり時間
- 1週間以上
- 初心者へのやさしさ
- 25/100
- issue の種類
- バグ
- 明瞭さ
- 説明が足りない
- 活発さ
- 静か
- 技術スタック
- solidity
- 領域
- blockchain, security
調査の方向性
contracts/treasury/GovernorCountingOverridable.sol から始め、特に 119 行目付近の _voteSucceeded と、125 行目付近の MathUtils.percOf の計算を確認してください。レポートは既知のスコープ外の挙動を説明していますが、要求される変更、テストパス、受け入れ基準のいずれも示していないため、意図された修正と Definition of Done は未解決です。
索引モデルが 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 compareforVoteswith the quorum-adjustedopinionatedVotesevaluates to, for example,0 >= 0, and therefore results in_voteSucceededreturningtrue.
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
- Source: contracts/treasury/GovernorCountingOverridable.sol
- Deployed LivepeerGovernor Proxy (Arbitrum): 0xcFE4E2879B786C3aa075813F0E364bb5acCb6aa0
- 主要言語
- JavaScript
- スター
- 156
- フォーク
- 50
- 平均マージ
- 9日 22時間
- マージ済み PR(30日)
- 1
環境構築
- Dockerfile または Docker Compose ファイルあり
- プルリクエストのテンプレートあり
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
livepeer/protocol のほかの issue
-
known-issue
難易度 4/5 3〜5日 初心者へのやさしさ 30/100
-
Winning tickets can settle for less than their face value once the recipient’s reserve is exhaustedオープンknown-issue
難易度 4/5 3〜5日 初心者へのやさしさ 25/100
-
blockchain enhancement pm
難易度 5/5 1週間以上 初心者へのやさしさ 35/100
-
known-issue
難易度 5/5 1週間以上 初心者へのやさしさ 20/100
-
enhancement
難易度 4/5 3〜5日 初心者へのやさしさ 42/100
livepeer/protocol の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 67/100
uoftblueprint/canada-basketball#67 ·
メンテナーはふだん 1 日以内に返信
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 61/100
Fei2411/DeepSeek-Bot#456 ·
メンテナーはふだん 1 日以内に返信
-
área:app área:produto sem-fase tipo:decisão
難易度 2/5 1〜3時間 初心者へのやさしさ 63/100
Varanda-org/varanda#91 ·
-
0️⃣ phase/new
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
メンテナーはふだん 1 日以内に返信
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 65/100
auth0/express-openid-connect#901 ·
メンテナーはふだん 1 日以内に返信