Front running is when you place a transaction in a queue when you have knowledge of a future transaction.
Other parties capable of front running are full node operators, which are parties tasked with keeping an eye on network activities, hence, have knowledge of unconfirmed transactions. Centralized exchanges can also conduct frontrunning, however, it would be against their best interest to cheat their own customers. Front running can also be orchestrated through other methods. Generalized front running taps into potentially profitable contract calls.
Other types of attacks include displacement, insertion and suppression. With a displacement attack, the malicious actor displaces a genuine transaction with their own. Although the original transaction may still run, it won’t have the positive effect as intended. On the other hand, an insertion attack sandwiches a genuine transaction between two transactions with the aim of making a profit without holding an asset.
The suppression attack is meant to delay others from running a transaction. When the withholding is lifted, the front runner is less concerned about the suppressed trade.