code-423n4 / 2023-04-frankencoin-findings

5 stars 4 forks source link

The wrong approach to defining the minter as approved #86

Open code423n4 opened 1 year ago

code423n4 commented 1 year ago

Lines of code

https://github.com/code-423n4/2023-04-frankencoin/blob/1022cb106919fba963a89205d3b90bf62543f68f/contracts/Frankencoin.sol#L152

Vulnerability details

Impact

The human factor, the network factor, the factor of force majeure, the factor of validators in the approach when the submission of a minter must survive a certain period of time to be approved leads to the fact that it will not work to impose a veto and the unwanted minter will be approved. Which will lead to fatal consequences

Proof of Concept

The approach to become a minter is as follows:

This approach leads to the fact that if you are not vetoed, you become a minter.

But there are quite a few reasons why you were not vetoed:

A single factor or several in a pile can lead to the fact that an unwanted minter will survive this period and become approved

Which will lead to fatal consequences, the bigger the project, the greater the chance of this

therefore, you should not rely on mechanism: if you are ignored, you will become a minter. you need to conduct minimal confirmation and additional waiting to become a minter or another flow

Tools Used

Recommended Mitigation Steps

c4-pre-sort commented 1 year ago

0xA5DF marked the issue as low quality report

0xA5DF commented 1 year ago

Seems like a design choice, improvements to the application process should be a QA imo

c4-judge commented 1 year ago

hansfriese changed the severity to QA (Quality Assurance)

c4-judge commented 1 year ago

hansfriese marked the issue as grade-b