Describe the normal behavior in one or more sentences
Answer: Only the rightful owner of a resource (via their signer) should be able to transfer or move it. Transfers must enforce signer authentication to prevent arbitrary resource theft.
Explain the specific issue or problem in one or more sentences
Answer: The transfer_vault function accepts an arbitrary from: address parameter and directly uses move_from on it. This means an attacker can steal resources from any user by supplying their address without needing their signer authentication.
Likelihood:
Reason 1 // Describe WHEN this will occur (avoid using "if" statements)
Answer: This occurs whenever an attacker calls transfer_vault with a victim’s address.
Reason 2
Answer: No checks exist on signer authority, making the exploit trivial.
Impact:
Impact 1
Answer: Complete theft of victim’s vault (funds, balances, data).
Impact 2
Answer: Victim permanently loses ownership of their resource, enabling large-scale draining attacks.
Step 1: Victim sets up a vault with a balance of 1000.
Step 2: Attacker abuses transfer_vault by providing the victim’s address as from.
Step 3: Attacker successfully steals the vault and its contents.
Step 4: Victim’s vault is deleted.
Replaces from: address with &signer to enforce ownership authentication.
Ensures only the vault owner can initiate transfer of their own resource.
Optional improvement: implement a controlled transfer mechanism where vault ownership is updated internally rather than moved directly, reducing attack surface
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.