Pending transactions are visible, so a searcher can insert their own before or after yours. Swaps get sandwiched, liquidations get raced, and naive commit-then-act flows get stolen.
require(amountOut >= minOut, "slippage"); require(block.timestamp <= deadline, "expired");
Defend with user-supplied minimum outputs, deadlines, commit-reveal for sensitive ordering, and private transaction relays where appropriate.