In the DeliveryPlace.closeBidTaker() function, when updating Points tokens for the Taker, the address used in the tokenManager.addTokenBalance() function is the collateral token address instead of the Points token address.
Within the DeliveryPlace.closeBidTaker() function, there is an attempt to update the Points token balance for the Taker:
However, instead of using marketPlaceInfo.tokenAddress, the code incorrectly uses makerInfo.tokenAddress. This mistake leads to direct manipulation of the user's balance and incorrect accounting.
Incorrect accounting.
Loss of user Points tokens (locked).
Protocol loss in the form of collateral tokens (users can withdraw tokens that do not belong to them).
Manual review.
Use the correct marketPlaceInfo.tokenAddress when updating the user's Points token balance in the TokenManager contract.
Valid high severity, In `settleAskTaker/closeBidTaker`, by assigning collateral token to user balance instead of point token, if collateral token is worth more than point, this can cause stealing of other users collateral tokens within the CapitalPool contract, If the opposite occurs, user loses funds based on the points they are supposed to receive
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.