Ethernet layer 2 doesn't correct errors, it only detects them by frame check sequence (FCS). The algorithm for FCS is CRC with the polynomial G(x) = x32 + x26 + x23 + x22 + x16 + x12 + x11 + x10 + x8 + x7 + x5 + x4 + x2 + x + 1. CRC cannot detect certain paired (even-number) bit error combinations - with a stable connection, these are very rare. A flaky cable could cause undetected errors however.
802.11 uses the same FCS. However, due to the usual encryption more errors can be detected.
10G Ethernet upwards use additional forward error correction (FEC) at layer 1. It can detect more errors and can also correct some error bits (not sure how many right now).