MoneyVault does not have moneyshelf role and as a result cant call CrimeMoney::burn or CrimeMoney::mintDescription:
In the Depoloyer.s.sol script the moneyShelf contract is given the moneyshelf role, giving it access to mint or burn CrimeMoney tokens, but when the emergency mode happens (on top of previous bugs: incorrect dependencies, and funds being stuck in moneyshelf) the moneyVault doesnt have the moneyshelf role and can not call burn to withdraw tokens for godfather.
Impact:
Funds remain inaccessible within the moneyVault due to the lack of permissions to withdraw them. Although a solution exists—assigning the moneyshelf role to MoneyVault—this issue underscores the importance of proper role management during emergency transitions.
Proof of Concept:
Include the following test in migration tests, noting that previous bugs must be resolved before running this test.
Recommended Mitigation:
Assign the moneyshelf role to MoneyVault within the EmergencyMigration deployment script to enable token operations during emergency mode.
Godfather can add the role manually
The contest is live. Earn rewards by submitting a finding.
This is your time to appeal against judgements on your submissions.
Appeals are being carefully reviewed by our judges.