Description
The framework used to develop the MoneyVault and the other contracts in the Protocol requires that all end-user functions are exposed via a Policy contract. There is no Policy Contract implemented that allows the call to MoneyVault::withdrawUSDC to be executed.
Impact
Funds are locked in the MoneyVault and cannot be accessed by the Godfather, contradicting the documentation and the intent of the MoneyVault:
MoneyVault:
Only the GodFather can withdraw and no one can deposit in this contract.
Proof of Concept
File: EmergencyMigration.t.sol
Update the EmergencyMigration.t.sol test file as shown above and run the test.
forge test --match-path test/EmergencyMigration.t.sol
Recommended mitigation
Implement a Policy for the MoneyVault so MoneyVault functions can be called
Implement robust testing of the MoneyVault functions
References
The Protocol Documentation states: This project uses the Default framework
Tools Used
Manual Review
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.