PostgreSQL Database Management System Patches Password Flaws

August 15, 2017 @ 1:45 PM
| |
2 min read

Over 50 bugs, along with a few serious vulnerabilities, have been reported in the last three months for PostgreSQL, the fourth most popular database management system in use today. The company’s latest security update features round of patches to deal with the bugs as well as the three security vulnerabilities that were recently identified.

Addressing Major Database Management System Flaws

The most serious vulnerability, tracked as CVE-2017-7546, has to do with PostgreSQL accepting empty passwords, SecurityWeek reported. After being patched, libpq will ignore empty password specifications and will not transmit them to the server, according to the release notes. It’s a brute-force approach to dealing with the situation, but effective nonetheless.

This flaw has a class A rating, meaning it can be exploited for privilege escalation without requiring a login. As the patch documentation explained, “An administrator might therefore believe that setting the password to empty is equivalent to disabling password login. However, with a modified or non-libpq-based client, logging in could be possible, depending on which authentication method is configured. In particular the most common method, md5, accepted empty passwords.”

Additional Password Vulnerabilities

Another password vulnerability (CVE-2017-7547) might cause passwords to be leaked to unauthorized users. A faulty attempt to fix the flaw previously known as CVE-2017-7486 still allowed a user to view the options in his or her own user mapping, even if the account lacked USAGE permission. The server might then give such a password to the user.

To fix this issue, developers restricted visibility of pg_user_mappings.umoptions to protect passwords stored as user mapping options. However, the developers noted that the patch will only work in new databases. Users looking to address the issue in older databases must take a series of steps outlined in the PostgreSQL security release.

SecurityWeek pointed out that the third vulnerability (CVE-2017-7548) could be exploited by any user to change data in a large object. This happens because of a permission check associated with the lo_put() function, which should require the same permissions as lowrite().

Patching PostgreSQL Databases

All users are strongly advised to install the latest update for PostgreSQL and update any existing database created under previous versions of the database management system. These updates are supported for versions 9.6.4, 9.5.8, 9.4.13, 9.3.18 and 9.2.22. There will be only one more update for version 9.2, which will reach its end-of-life in September 2017.

Larry Loeb
Principal, PBC Enterprises

Larry Loeb has written for many of the last century's major "dead tree" computer magazines, having been, among other things, a consulting editor for BYTE mag...
read more