The RootProxy
contract delegates calls to branch contracts but lacks access control on upgrades. An attacker with upgrade privileges can replace critical logic to drain funds or disrupt operations.
Affected Code:
If RootUpgrade allows post-deployment upgrades (not shown but implied by upgrade function), unauthorized changes to branch implementations are possible.
Exploit Scenario:
Attacker gains upgrade rights (e.g., compromised admin key).
Replaces transfer selector with malicious branch.
Drains all funds via hijacked logic.
Manual code analysis
Implement role-based access control:
2.. Use timelocks for upgrades.
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.