The KittyConnect contract is using custom modifier onlyKittyConnectOwner modifier instead of onlyOwner from OpenZeppelin. This could lead to vulnerabilities if not implemented correctly.
The onlyOwner modifier from OpenZeppelin enforces that only the contract owner can execute the function. A custom modifier like onlyKittyConnectOwner likely tries to accomplish the same goal, but may be vulnerable.
Since onlyOwner is well-tested and audited, a custom modifier likely introduces more risk.
If onlyKittyConnectOwner is poorly implemented, it could allow unauthorized accounts to execute privileged functions.
Manual Review
Use onlyOwner from OpenZeppelin for clear and standardized access control.
Import Ownable from OpenZeppelin library
Add inheritance to the contract
Add onlyOwner modifier instead of onlyKittyConnectOwner in KittyConnect::addShop function
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.