The project owner can hand-over admin role to the public via renounceOwnership function. This can allow anybody to take-over the protocol and steal funds via the rescue function.
The ownable contact has a renounceOwnership function that allows the admin to literally hand-over ownershipt to the address(0):
. While the comments state the only impact is that functions that have the onlyOwner modifier cannot be called, the reality is that an adversary can call initializeOwnership() and set themselves as the new admin:
Once they become admins, they can easily steal all funds via the rescue function:
For a POC, please use this test that shows that funds can be stolen from the CapitalPool:
Admin can hand-over ownership to adversary who can steall all funds in the protocol.
Manual review
This function should always revert
The following issues and its duplicates are invalid as admin errors/input validation/malicious intents are1 generally considered invalid based on [codehawks guidelines](https://docs.codehawks.com/hawks-auditors/how-to-determine-a-finding-validity#findings-that-may-be-invalid). If they deploy/set inputs of the contracts appropriately, there will be no issue. Additionally admins are trusted as noted in READ.ME they can break certain assumption of the code based on their actions, and
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.