Finding the source of a (memory read) hardware error

but memtest86 shows everything OK. Could this be my CPU's fault?

Yes, but here is what is more likely: You have ECC memory and it works.

Basically it fixes single bit errors transparently. It signals this - which the OS is smart enough to intercept and log.

Memtest is too primitive for this, and does not intercept the notification, all it sees is that the test passes, because ECC fixes the errors.