Claiming rebate fees and withdrawing rebate fees will always fail due to this issue. Tokens meant for the rebate authority are stuck in the vault. This is a loss of funds.
PoC
No response
Mitigation
Consider adding the bump seed in rebate manager's seeds(). Woo Pool's seeds() can be used as a reference.
The rebate_manager's bump is now stored in the account and included in its seeds(). The issue is fixed and transfers from the rebate_manager will succeed.
g
High
Transfers from the rebate manager's token vault always fail due to lack of bump seed
Summary
The bump seed is not included in the signer seed for the transfer transaction which will cause all token transfers from the token vault to fail.
The Rebate Manager is a PDA that owns the Token Vault.
The rebate manager must sign the transaction when transferring tokens from the token vault. The signer seeds used for the transfer transaction are:
All transactions signed by a PDA must include their bump seed like in Woopool's seeds.
Root Cause
In
rebate_manager.rs:54-59
, the bump seed is not included which causes all transfers/transactions signed with those seeds to fail.Internal pre-conditions
None
External pre-conditions
None
Attack Path
rebate_manager
program that callstransfer_from_vault_to_owner()
. Instructions that call this transfer are:claim_rebate_fee()
withdraw_rebate_fee()
Impact
Claiming rebate fees and withdrawing rebate fees will always fail due to this issue. Tokens meant for the rebate authority are stuck in the vault. This is a loss of funds.
PoC
No response
Mitigation
Consider adding the bump seed in rebate manager's
seeds()
. Woo Pool'sseeds()
can be used as a reference.