Merkle proof can be reused for withdrawal in Priority Pool which can cause lack of liquidity for future withdrawal with unused merkle proof.
The withdraw
function in PriorityPool.sol
does not track if merkle proof has been used. It only verifies whether merkle proof is valid or not.
Merkle proof can be reused to unqueue token leading to higher withdrawal amount by the user which could cause lack of liquidity for future withdrawal with valid proof.
Manual review
Track and verify used merkle proof.
It does concern different variables. But using the same merkle inside 3 different functions is not a good practice. Nonces, separators and safety.
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.