Gen 3:20 And Adam called his wife's name Eve; because she was the mother of all living.
It would of had to be Cain's relative,which could be his sister or not,which most likely it would not be his sister,for even though the law was not given yet,they must of had some moral rule of that not to marry the child of your direct mother,and father,and they lived to a great number of years back then,hundreds of years,so Cain could of easily married his brother,or sister's daughter,which would not be a direct child of his mother,and father.
But I do not know if it was his sister from his mother,and father,or a daughter from one of his brother,or sister's child,but it had to be a relative.