As I'm getting some questions on this: this attack only works due to the combination of specifically RSA with an insecure hash function.
Neither RSA nor AES-CMAC were broken, but AES-CMAC, as opposed to HMAC-SHA2, does not degrade into a secure hash function when the key is known.
But you also need RSA for this to work, ECDSA would have been able to (somewhat) resist this attack:
If we use uncompressed points, it is very unlikely to land on the curve, so a simple point on curve check would have thwarted the attack. While we could choose 48 of the 64 bytes of a point, we have to choose first, and then compute the rest, so that does not help us to land on the curve.
If it was using compressed points, we would be able to find a second point on the curve. But again, this is a point that had half of its bytes chosen at random, so you would not have a way to compute its discrete logarithm. That is, unless you're willing to use a lot of memory, and combine baby step-giant step with a multi user attack. That would work, but still be prohibitively expensive for casual vulnerability research.