It was found that kwallet, a tool for managing the passwords on a KDE system, uses Blowfish to encrypt its password store, and despite an attempt at implementing CBC mode (in a file called cbc.cc no less), it's actually ECB mode. UTF-16 encoding combined with Blowfish's 64 bit block size means there are just four password characters per block. Encryption is convergent as well.
The risk is that this may enable recovery of passwords through codebook attacks.
Created kwallet tracking bugs for this issue:
Affects: fedora-all [bug 1048169]
How are we supposed to fix this? Just changing the algorithm won't work because existing wallets have to keep working.
There also appear to be no practical attacks against the algorithm.
(In reply to Kevin Kofler from comment #3)
> How are we supposed to fix this? Just changing the algorithm won't work
> because existing wallets have to keep working.
> There also appear to be no practical attacks against the algorithm.
It seems that kwallet is moving to gpgme from version 4.12.The current code is only bound to remain for backward compatibility purpose. So one solution is to update to 4.12 and discourage users to use blowfish for storing passwords.
This issue affects the version of kdebase-runtime package as shipped with Red Hat Enterprise Linux 6. The Red Hat Security Response Team has rated this issue as having low security impact, a future update may address this flaw.
*** Bug 1180502 has been marked as a duplicate of this bug. ***
kde-runtime-4.14.3-3.fc21 has been pushed to the Fedora 21 stable repository. If problems still persist, please make note of it in this bug report.
kde-runtime-4.14.3-3.fc20 has been pushed to the Fedora 20 stable repository. If problems still persist, please make note of it in this bug report.