Platform: Code4rena
Start Date: 12/04/2023
Pot Size: $60,500 USDC
Total HM: 21
Participants: 199
Period: 7 days
Judge: hansfriese
Total Solo HM: 5
Id: 231
League: ETH
Rank: 65/199
Findings: 2
Award: $56.43
🌟 Selected for report: 0
🚀 Solo Findings: 0
33.835 USDC - $33.83
https://github.com/Frankencoin-ZCHF/FrankenCoin/blob/main/contracts/Frankencoin.sol#L146-L151
Minters have a huge power in the Frankencoin system, as they can:
We are supposing that minters are trustworthy, but bugs can (and will) happen even in the major firms in the DeFi space.
If a critical vulnerability leads to loss of access control and/or abuse of minter functions, the system will be permanently compromised, as this minter can't be removed after the application period.
It's possible to deny the application of a minter, but not remove it after the period has ended:
function denyMinter( address _minter, address[] calldata _helpers, string calldata _message ) external override { if (block.timestamp > minters[_minter]) revert TooLate(); reserve.checkQualified(msg.sender, _helpers); delete minters[_minter]; emit MinterDenied(_minter, _message); }
Suppose that a trustworthy third party is allowed to become a minter by the system. Sometime after the application period has ended, one of the following scenarios could happen:
Manual review
Consider adding a way to remove established minters (and their positions) for qualified pool shareholders.
#0 - c4-pre-sort
2023-04-21T15:19:33Z
0xA5DF marked the issue as duplicate of #230
#1 - c4-judge
2023-05-18T13:44:18Z
hansfriese marked the issue as satisfactory