src/trading-account-nft/TradingAccountsNFT.sol
The _authorizeUpgrade function uses the onlyOwner modifier to authorize contract upgrades. This can be a security risk if the owner’s private key is compromised.
The _authorizeUpgrade function restricts contract upgrades to the owner only, which poses a risk if the owner's key is compromised. An attacker with control over the owner address could upgrade the contract to a malicious implementation.
Malicious Contract Upgrades: If the owner’s key is compromised, the attacker could maliciously upgrade the contract, potentially introducing security flaws or malicious code that can affect the contract’s users and data.
Manual code review
Implement a more secure upgrade authorization process, such as multisig or role-based access control. For example, you could use OpenZeppelin’s AccessControl to manage upgrade permissions with multiple parties.
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.