Open sherlock-admin2 opened 1 month ago
valid, low impact. same with https://github.com/sherlock-audit/2024-08-woofi-solana-deployment-judging/issues/54
The protocol team fixed this issue in the following PRs/commits: https://github.com/woonetwork/WOOFi_Solana/pull/31
0xeix
High
Wooracle authority is incorrectly set
Summary
At the moment wooracle admin is marked as the signer of the transaction (
msg.sender
) who callshandler()
function without any verification if it's a trusted entity or not.Vulnerability Detail
create_wooracle()
instruction is used to create a new wooracle with different parameters by callinghandler()
function:https://github.com/woonetwork/woofi_swap_smart_contracts/blob/main/contracts/WooPPV2.sol#L84
However, in the current version of the instruction, admin is currently set as just signer:
https://github.com/sherlock-audit/2024-08-woofi-solana-deployment/blob/main/WOOFi_Solana/programs/woofi/src/instructions/admin/create_wooracle.rs#L62
And there is no any constraint to validate if it's a trusted entity or not as it's done in other instructions meaning the
handler()
can be called by anybody.From the spec:
Impact
Anybody can call
handler()
function and create a new wooracle that's supposed to be only called by admin.Code Snippet
Provided above.
Tool used
Manual Review
Recommendation
Introduce some constraints in
CreateWooracle
struct to check for the trusted authority.