Some functions in the RootProxy and BranchManager contracts lack proper access control, allowing anyone to execute administrative actions like upgrading of branches, pausing/unpausing the contract, and modifying branch data.
Affected Contracts & Function:
| Contract Name | Function Name | Issue |
|---|---|---|
RootProxy |
upgradeBranches() |
No onlyAdmin check, allowing unauthorized upgrades. |
RootProxy |
pause() |
No restriction, meaning anyone can pause the contract. |
RootProxy |
unpause() |
No restriction, meaning anyone can unpause the contract. |
BranchManager |
addBranch() |
No onlyAdmin, so anyone can add a branch (potential vulnerability). |
BranchManager |
removeBranch() |
No onlyAdmin, so anyone can remove a branch, possibly breaking functionality. |
The contracts **lack access control ** (onlyAdmin, AccessControl, or Ownable), making critical functions callable by anyone.
manual
strict access control should be enforced
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.