Skip to content

fix(amm): validate user deposit accounts are owned by vault's token p…#71

Open
0x-r4bbit wants to merge 1 commit intomainfrom
fix/69
Open

fix(amm): validate user deposit accounts are owned by vault's token p…#71
0x-r4bbit wants to merge 1 commit intomainfrom
fix/69

Conversation

@0x-r4bbit
Copy link
Copy Markdown
Collaborator

…rogram

An attacker could pass user holding accounts owned by a malicious token program. Since chained calls are dispatched to the program_owner of the user holding account, a fake program could accept the transfer instruction without actually moving tokens.

Add assertions in add_liquidity, remove_liquidity, swap_exact_input, and swap_exact_output that user_holding_a and user_holding_b must share the same program_owner as vault_a. The vault accounts are PDA-verified via their account_id, making vault_a's program_owner the authenticated reference. new_definition already validated that both user holdings use the same program.

Adds 8 regression tests covering the wrong-program case for each operation and each user holding slot.

Closes #69

…rogram

An attacker could pass user holding accounts owned by a malicious token
program. Since chained calls are dispatched to the program_owner of the
user holding account, a fake program could accept the transfer instruction
without actually moving tokens.

Add assertions in add_liquidity, remove_liquidity, swap_exact_input, and
swap_exact_output that user_holding_a and user_holding_b must share the
same program_owner as vault_a. The vault accounts are PDA-verified via
their account_id, making vault_a's program_owner the authenticated
reference. new_definition already validated that both user holdings use
the same program.

Adds 8 regression tests covering the wrong-program case for each
operation and each user holding slot.

Closes #69
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Ensure user deposit accounts are correct

1 participant