The Bible does not specifically say who Cain’s wife was. The only possible answer is that Cain’s wife was his sister or niece or great-niece, etc. The Bible does not say how old Cain was when he killed Abel (Genesis 4:8). Since they were both farmers, they were likely both full-grown adults, possibly with families of their own. Adam and Eve surely had given birth to more children than just Cain and Abel at the time Abel was killed. They definitely had many more children later (Genesis 5:4).
The fact that Cain was scared for his own life after he killed Abel (Genesis 4:14) indicates that there were likely many other children and perhaps even grandchildren of Adam and Eve already living at that time. Cain’s wife (Genesis 4:17) was a daughter or granddaughter of Adam and Eve.
Since Adam and Eve were the first (and only) human beings, their children would have no other choice than to intermarry. God did not forbid inter-family marriage until much later when there were enough people to make intermarriage unnecessary(Leviticus 18:6-18). The reason that incest today often results in genetic abnormalities is that when two people of similar genetics (i.e., a brother and sister) have children together, there is a high risk of their recessive characteristics becoming dominant.
When people from different families have children, it is highly unlikely that both parents will carry the same recessive traits. The human genetic code has become increasingly “polluted” over the centuries as genetic defects are multiplied, amplified, and passed down from generation to generation. Adam and Eve did not have any genetic defects, and that enabled them and the first few generations of their descendants to have a far greater quality of health than we do now. Adam and Eve’s children had few, if any, genetic defects. As a result, it was safe for them to intermarry.