Affected users are those who use the crypt(text, text) function with DES encryption in the optional pg_crypto module. Passwords affected are those that contain characters that cannot be represented with 7-bit ASCII. If a password contains a character that has the most significant bit set (0x80), and DES encryption is used, that character and all characters after it will be ignored.
Users of high-security applications who cannot wait for the update are recommended to do one of three things:
- switch from using crypt() with DES to a more current encryption algorithm such as Blowfish.
- download the patch, patch their own installations in source code form, reinstall pg_crypto, disconnect all sessions and restart them to reload the library or restart the server.
- add a check to ensure that all passwords hashed with crypt() do not allow the value 0x80.
The PostgreSQL Project regrets the inconvenience to our users. We are grateful to security researchers Robin Xu and Joseph Bonneau for discovering this issue.
For more information on the pg_crypto module, please see the documentation.