Open-source password keeper to get 'minor' weekend security fix
You'd need to make several dumbass moves to get bitten
The developer of KeePass, the popular open-source password management utility, has promised an update this weekend following the discovery of a "minor" security bug in the tool.
KeePass Password Safe is a free-of-charge and open-source tool that offers consumers the ability to manage multiple passwords from a central vault. Access to the vault is locked with either a master passphrase or key file. These password vault databases are encrypted.
The KeePass Password Safe tool contains a function to export these database to an HTML file. The vulnerability, which is restricted to older version of KeePass, stems from the fact that the URLs of entries are embedded in the exported HTML file without using XML special characters.
This means that when the URL field of an entry contains a malicious script, this will be executed when the exported HTML file is opened in a browser, at least for KeePass 1.x. Strings in HTML files exported by KeePass 2.x are already encoded, so the latest version of the software is immune from the security bug.
Dominik Reichl, the developer of KeePass, told El Reg that fixing this flaw for KeePass 1.x is a simple matter of making sure that "XML special characters in URLs are encoded in the exported HTML file".
Reichl acknowledges there's a problem with older version of his software, hence the development of a patch, but argues malicious attacks against the flaw would be difficult to execute – even in unpatched systems.
"A malicious URL can get into a KeePass database in two ways: either the user enters it manually in the entry-editing dialogue or the user manually imports a database file (not just as attachment)," Reichl explained, adding that in either case a potential attacker is relying on somehow coaxing a user into doing something inadvisable.
"The first way (manual entry) is extremely unlikely to happen; the user would need to be very inexperienced to not notice a script within an URL that he manually enters in the entry-editing dialogue. The second way is a bit more likely, but really how often does it happen that you import a database file that has been sent to you by someone? Also, a user must not look at the imported entries, otherwise he'd notice the malicious URL. And of course the user has to export the data to an HTML file and open it. Don't get me wrong, I acknowledge the existence of the vulnerability and it definitely had to be fixed, but its severity seems to be a bit overrated," Reichl concludes.
Reichl adds that KeePass 1.x doesn't allow plugins that permit the automatic (his emphasis) importing of data from other applications, a factor that restricts the available attack options.
Reichl originally planed to release KeePass 1.23 (including the fix) under the original update schedule in a few months. However, in the aftermath of the discovery of the bug, Reichl has rethought this schedule and decided to release the update KeePass 1.23 in three days' time, on Sunday 1 July. ®
Good news really
If that's the worst security flaw that the researcher can come up with, it means I can happily carry on using it safe in the knowlage that it's generally a reliable bit of software.
In addition it is encouraging that the developer is patching this, either in 3days or as originally planned given the difficulty to exploit the bug.
Seems a bit of a stretch...
I mean - is it a vulnerability in Notepad that you can paste a malicious url wrapped in html tags into it, and save it as an html file?
Minor is a bit of an understatement
You mean you have to decrypt or use the password on an existing keepass database, open an entry and paste or type a malicious URL without realising it. That's pushing things a bit far.
Ok, you could import an existing database but then it means you are importing from an "untrusted" source anyway. I dont know many people that habitually exchange password databases.
I agree it's excellent that the dev acknowledges and will repair the "very extremely minor, almost unfeasible error". Kudos to the dev.