According to the Documentation the Laundrette
contract has a function that permits the godfather to retrieve the admin role when needed. However when then godfather calls Laundrette::retrieveAdmin
, the function reverts with an error Kernel_OnlyExecutor
, because the Admin
in this case the Laundrette
contract is not allowed to perform this action directly.
It's not really a vulnerability but an implementation error, that causes confusion and the function to revert.
Paste the following code into the Laundrette.t.sol
file, then run the test:
The function Laundrette::retrieveAdmin
is useless and will always fail, making the code harder to read, bloating up the code and makes the usage of the protocol harder because the godfather account might expect that he can call this function to retrieve the admin role.
forge test
Remove the function from the Laundrette
contract, because the executor (in this case the godfather) should call the Kernel::kernel.executeAction
directly. The Laundrette
contract acting as the Admin
doesn't have any permissions to perform this call.
Optional: The protocol can implement a Script that calls the Kernel::kernel.executeAction
with the godfathers private key as signer, to easier handle this action.
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.