Perhaps the ransomware developers don't understand this or thought it was too much work, or perhaps they want to provide a better user experience by sending a unilateral unlock code rather than requiring the victim to send any data to the attacker.
Congratulations to the people behind this collaboration for making progress on helping the victims.
The private-key to generate the session-key has to exist somewhere -- you don't want it anywhere it can be traced back to you, so it would probably be on some automated control server - which tracks the payment addresses and forwards the decryption key on bitcoin payment receipt.
My guess best is that some of the keys got recovered in the C&C Server take-downs. It would be possible to use bitmessage or another non-ip traceable method of communication to pass decryption keys and and keep the structure separate from the C&C servers.
They are. CryptoLocker[1], which CoinVault is loosely based on, used per infection keys, and the warnings on the Kaspersky site make it clear they don't believe they got all the keys, which would mean there's more than a few keys.
[1] http://en.wikipedia.org/wiki/CryptoLocker
> But then considering this is software made by criminals, I would not expect even the most sensible or trivial of features and security precautions would be implemented.
I'd advise against underestimating your enemy in this global age. These aren't petty thieves akin to digital purse snatchers, working haphazardly, but the work of a few motivated individuals, likely with ties to organized crime.
More specifically on the topic of ransomware, have a look at this gem [1], which uses RSA, but the key is 128 ASCII digits. Very similar to the cryptocat disaster. [2]
[1] http://blog.cassidiancybersecurity.com/post/2014/02/Bitcrypt...
https://securelist.com/blog/69595/challenging-coinvault-its-...