USB uses CRC5 for Token packets, and CRC16 for Data packets.
Upon error, a resend request tells the host/slave to send it again.

By the time it gets to one end or the other, you're pretty much guaranteed it's valid data.