This question already has an answer here:
Let's say I want to deanonymize Monero. What if I create a ton of RingCT outputs, such that, say, +99% of them are mine. Since amounts don't matter with RingCT, it can be very small amounts (like one atomic unit each).
Now if in a ring signature, 4 of public keys are mine, and I didn't sign it, I know that it must have been the other public key. In this way, I can link addresses on the block chain, and do block chain analysis.
Is there something preventing this attack?