intialize()
function under KeeperProxy.sol
uses hardcoded contract address of upkeep but it is not recommended as per chainlink documentation. Please refer the same as It applies for all up keep contract addresses
Here is the code:
Main calls to the protocol, like runAction()
, runNextAction()
will always fail if chainlink upgrades the address of its upkeep contract. Since this protocol lacks upgradability, it risks halting all operations dependent on Chainlink price feeds when an update becomes necessary.
Manual Review
Mandatory: Must make the address configurable
Optional: Make the contracts upgradable to mitigate any issues discovered in future
Optional: Have a backup Oracle as last option like - TWAP
Please read the CodeHawks documentation to know which submissions are valid. If you disagree, provide a coded PoC and explain the real likelihood and the detailed impact on the mainnet without any supposition (if, it could, etc) to prove your point.
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.