|
Missing signer validation on withdraw instruction
The withdraw instruction does not verify that the authority account is a signer. Any account can be passed as the authority and the transaction will succeed, allowing unauthorized withdrawals from any vault.
📍 programs/vault/src/instructions/withdraw.rs:34
Fix: Add `#[account(signer)]` constraint to the authority account in the Accounts struct, or add an explicit `require!(authority.is_signer, VaultError::MissingSigner)` check at the start of the instruction handler.
|