First published: Wed Oct 04 2017(Updated: )
PostgreSQL 10.x before 10.1, 9.6.x before 9.6.6, 9.5.x before 9.5.10, 9.4.x before 9.4.15, 9.3.x before 9.3.20, and 9.2.x before 9.2.24 runs under a non-root operating system account, and database superusers have effective ability to run arbitrary code under that system account. PostgreSQL provides a script for starting the database server during system boot. Packages of PostgreSQL for many operating systems provide their own, packager-authored startup implementations. Several implementations use a log file name that the database superuser can replace with a symbolic link. As root, they open(), chmod() and/or chown() this log file name. This often suffices for the database superuser to escalate to root privileges when root starts the server.
Credit: secalert@redhat.com
Affected Software | Affected Version | How to fix |
---|---|---|
redhat/postgresql | <9.2.24 | 9.2.24 |
redhat/postgresql | <9.3.20 | 9.3.20 |
redhat/postgresql | <9.4.15 | 9.4.15 |
redhat/postgresql | <9.5.10 | 9.5.10 |
redhat/postgresql | <9.6.6 | 9.6.6 |
redhat/postgresql | <10.1 | 10.1 |
PostgreSQL Common | =9.2 | |
PostgreSQL Common | =9.2.1 | |
PostgreSQL Common | =9.2.2 | |
PostgreSQL Common | =9.2.3 | |
PostgreSQL Common | =9.2.4 | |
PostgreSQL Common | =9.2.5 | |
PostgreSQL Common | =9.2.6 | |
PostgreSQL Common | =9.2.7 | |
PostgreSQL Common | =9.2.8 | |
PostgreSQL Common | =9.2.9 | |
PostgreSQL Common | =9.2.10 | |
PostgreSQL Common | =9.2.11 | |
PostgreSQL Common | =9.2.12 | |
PostgreSQL Common | =9.2.13 | |
PostgreSQL Common | =9.2.14 | |
PostgreSQL Common | =9.2.15 | |
PostgreSQL Common | =9.2.16 | |
PostgreSQL Common | =9.2.17 | |
PostgreSQL Common | =9.2.18 | |
PostgreSQL Common | =9.2.19 | |
PostgreSQL Common | =9.2.20 | |
PostgreSQL Common | =9.2.21 | |
PostgreSQL Common | =9.2.22 | |
PostgreSQL Common | =9.2.23 | |
PostgreSQL Common | =9.3 | |
PostgreSQL Common | =9.3.1 | |
PostgreSQL Common | =9.3.2 | |
PostgreSQL Common | =9.3.3 | |
PostgreSQL Common | =9.3.4 | |
PostgreSQL Common | =9.3.5 | |
PostgreSQL Common | =9.3.6 | |
PostgreSQL Common | =9.3.7 | |
PostgreSQL Common | =9.3.8 | |
PostgreSQL Common | =9.3.9 | |
PostgreSQL Common | =9.3.10 | |
PostgreSQL Common | =9.3.11 | |
PostgreSQL Common | =9.3.12 | |
PostgreSQL Common | =9.3.13 | |
PostgreSQL Common | =9.3.14 | |
PostgreSQL Common | =9.3.15 | |
PostgreSQL Common | =9.3.16 | |
PostgreSQL Common | =9.3.17 | |
PostgreSQL Common | =9.3.18 | |
PostgreSQL Common | =9.3.19 | |
PostgreSQL Common | =9.4 | |
PostgreSQL Common | =9.4.1 | |
PostgreSQL Common | =9.4.2 | |
PostgreSQL Common | =9.4.3 | |
PostgreSQL Common | =9.4.4 | |
PostgreSQL Common | =9.4.5 | |
PostgreSQL Common | =9.4.6 | |
PostgreSQL Common | =9.4.7 | |
PostgreSQL Common | =9.4.8 | |
PostgreSQL Common | =9.4.9 | |
PostgreSQL Common | =9.4.10 | |
PostgreSQL Common | =9.4.11 | |
PostgreSQL Common | =9.4.12 | |
PostgreSQL Common | =9.4.13 | |
PostgreSQL Common | =9.4.14 | |
PostgreSQL Common | =9.5 | |
PostgreSQL Common | =9.5.1 | |
PostgreSQL Common | =9.5.2 | |
PostgreSQL Common | =9.5.3 | |
PostgreSQL Common | =9.5.4 | |
PostgreSQL Common | =9.5.5 | |
PostgreSQL Common | =9.5.6 | |
PostgreSQL Common | =9.5.7 | |
PostgreSQL Common | =9.5.8 | |
PostgreSQL Common | =9.5.9 | |
PostgreSQL Common | =9.6 | |
PostgreSQL Common | =9.6.1 | |
PostgreSQL Common | =9.6.2 | |
PostgreSQL Common | =9.6.3 | |
PostgreSQL Common | =9.6.4 | |
PostgreSQL Common | =9.6.5 | |
PostgreSQL Common | =10 |
Sign up to SecAlerts for real-time vulnerability data matched to your software, aggregated from hundreds of sources.
CVE-2017-12172 has a high severity rating as it allows database superusers to execute arbitrary code.
To fix CVE-2017-12172, upgrade PostgreSQL to version 10.1 or later, 9.6.6 or later, 9.5.10 or later, 9.4.15 or later, 9.3.20 or later, or 9.2.24 or later.
CVE-2017-12172 affects PostgreSQL versions up to 10.0, 9.6.5, 9.5.9, 9.4.14, 9.3.19, and 9.2.23.
The vulnerability in CVE-2017-12172 is caused by PostgreSQL running under a non-root operating system account, allowing superusers to exploit it.
Currently, there isn't a recommended workaround for CVE-2017-12172 except to upgrade to a patched version of PostgreSQL.