Password manager Kaspersky used predictable seed in random number generator

Kaspersky’s password manager created insecure passwords for years. The password generator in the software used a machine’s time as its only form of entropy, allowing passwords to be discovered in seconds via brute-force attacks.

The problem is in Kaspersky Password Manager or KPM, a standalone password manager from the security company that works on desktop as well as mobile and in the browser. The vulnerability was discovered by Donjon, the research team at security firm Ledger. That describes how it first found a leak in the software almost two years ago.

The researchers looked specifically at how the pseudorandom number generator, or prng, worked in the password manager. That is the algorithm that determines which characters should be in the generated password. Although the prng of Kaspersky’s password manager protects relatively well against attacks, according to the researchers there is a vulnerability if an attacker knows that a victim is using Kaspersky’s software.

In that case it is possible to guess certain parts of a generated password. KPM uses a Mersenne Twister pnrg where the seed was derived from just the current system time, which was converted to seconds. As a result, all installations of KPM would ‘generate exactly the same password in the same second’. That also means that passwords can easily be retrieved via a brute-force attack, the researchers say. “There are 315,619,200 seconds between 2010 and 2021, so that’s the maximum number of passwords users with a given charset can have, so it can be cracked in minutes.” This only applies to passwords where the charset, or the length of the passwords, has never been modified. Kaspersky’s software defaults to twelve characters.

The researchers have since contacted Kaspersky. The company has since fixed the vulnerability, code CVE-2020-27020.