As Rococo already pointed out, the no-cloning theorem doesn't forbid cloning of all specific states. It just states that you cannot make copies of arbitrary (general) states.
Let me (briefly) reiterate the core of the theorem: To clone a state you need a linear operator C that maps a state $|a>|0>$$|a\rangle|0\rangle$ to $|a>|a>$$|a\rangle|a\rangle$. This is not possible for general states: $$C |\lambda a+ \mu b>|0>$$$$C |\lambda a+ \mu b\rangle|0\rangle$$ would have to map to $$|\lambda a+\mu b>|\lambda a+ \mu b>$$$$|\lambda a+\mu b\rangle|\lambda a+ \mu b\rangle$$ per definition of the operator. But linearity (and homogenity) leads to $$C |\lambda a+\mu b>|0> = \lambda C|a>|0> + \mu C|b>|0> = \lambda|a>|a> + \mu |b>|b>$$$$C |\lambda a+\mu b\rangle|0\rangle = \lambda C|a\rangle|0\rangle + \mu C|b\rangle|0\rangle = \lambda|a\rangle|a\rangle + \mu |b\rangle|b\rangle$$ while $$ |\lambda a+ \mu b>|\lambda a+ \mu b> = \lambda^2|a>|a> +\lambda \mu (|a>|b>+|b>|a>)+\mu^2|b>|b>$$$$ |\lambda a+ \mu b\rangle|\lambda a+ \mu b\rangle = \lambda^2|a\rangle|a\rangle +\lambda \mu (|a\rangle|b\rangle+|b\rangle|a\rangle)+\mu^2|b\rangle|b\rangle$$
So you see that for e.g. $\lambda=1, \mu=0$ (i.e. a base state) there is no contradiction. But you can't clone a general superposition of your base states.