https://github.com/hackenproof-public/rain-contracts
SUMMARY
A blacklisted user with an active order (especially one at the best bid/ask) can DoS the entire pool. The pool always tries to match new enterOption/buy/sell orders against the best order first, if that order belongs to a blacklisted address (USDC/USDT blacklist), this effectively freezes the pool’s ability to process new trades as the safeTransfer call in _executeSellOrder() reverts.
The Root Cause Sequence is as follows:
firstSellOrderPrice[option] or firstBuyOrderPrice[option] points to an order owned by the blacklisted address._executeSellOrder(), it calls:IERC20(baseToken).safeTransfer(sellerAddress, userAmount);
enterOption() / placeBuyOrder() transaction fails.IMPACT
MITIGATION
INSTRUCTION
forge test --mt test_submission -vvv