It's a common mistake, generally caused because the phrase "Could have" is said so quickly that it is conceived as "Could of", but that's wrong.
"Should of" is the exact same but slightly less common mistake.
Smart person, not an idiot(Through text message): "Are you serious? It's 'Could HAVE', not 'Could of'. Are you stupid?"
Idiot(Through text message): "Well, my name IS idiot for a reason..."