A security researcher has discovered a vulnerability in the Kaspersky Password Manager (KPM) that resulted in the creation of cryptographically weak passwords, which could be easily bruteforced “in seconds”.
For those unaware, KPM is a password manager developed by Russian security firm Kaspersky, which allows users to securely store passwords and documents into an encrypted vault, protected by a password.
All the sensitive data stored in the encrypted vault is protected with a master password. This product is available for various operating systems such as Windows, macOS, Android, iOS, Web.
It also allows users to create generate random, strong passwords from a given “policy”, which consists of password length, uppercase letters, lowercase letters, digits, and a custom set of special chars. By default, KPM generates 12-character passwords with an extended charset.
The vulnerability issue tracked as CVE-2020-27020 was discovered by the security research team at Ledger Donjon.
“The password generator included in Kaspersky Password Manager (KPM) had several problems. The most critical one is that it used a PRNG not suited for cryptographic purposes,” wrote Jean-Baptiste Bédrune, head of security research of Ledger Donjon.
“Its single source of entropy was the current time. All the passwords it created could be bruteforced in seconds.”
The researchers found that the mechanism used by KPM to generate these random passwords was faulty, as Kaspersky was using the current system time in seconds as the seed into a Mersenne Twister pseudorandom number generator (PRNG).
“It means every instance of Kaspersky Password Manager in the world will generate the exact same password at a given second.”
Since the program has an animation that takes more than a second when a password is created, hence, the weakness had not been discovered before, Bédrune said.
“The consequences are obviously bad: every password could be bruteforced. For example, there are 315619200 seconds between 2010 and 2021, so KPM could generate at most 315619200 passwords for a given charset. Bruteforcing them takes a few minutes,” he added.
Since the websites or forums display the creation time of accounts, an attacker can try to brute force the account password with a small range of passwords (~100) and gain access to it.
Moreover, passwords from leaked databases containing hashed passwords, passwords for encrypted archives, TrueCrypt/Veracrypt volumes, etc. can be also easily retrieved if they had been generated using KPM.
Kaspersky was informed of the vulnerability in June 2019 for which the company released the fixed version in October 2019. In October 2020, users were notified that some passwords would need to be generated.
“Password generator was not completely cryptographically strong and potentially allowed an attacker to predict generated passwords in some cases. An attacker would need to know some additional information (for example, time of password generation),” the company said in its security advisory published on April 27, 2021.
“All public versions of Kaspersky Password Manager liable to this issue now have a new logic of password generation and a passwords update alert for cases when a generated password is probably not strong enough.”
Although the issue has now been patched, several KPM versions before 9.0.2 Patch F on Windows, Android prior to 184.108.40.2062, and iOS prior to 220.127.116.11 were affected.
“Kaspersky has fixed a security issue in Kaspersky Password Manager, which potentially allowed an attacker to find out passwords generated by the tool,” Kaspersky said in a statement.
“This issue was only possible in the unlikely event that the attacker knew the user’s account information and the exact time a password had been generated. It would also require the target to lower their password complexity settings.”
It further added, “The company has issued a fix to the product and has incorporated a mechanism that notifies users if a specific password generated by the tool could be vulnerable and needs changing.”
Kaspersky recommends its users to check the application version and install the latest updates.