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.
The product attempts to access a file based on the filename, but it does not properly prevent that filename from identifying a link or shortcut that resolves to an unintended resource.
Link | Tags |
---|---|
https://access.redhat.com/errata/RHSA-2017:3402 | issue tracking third party advisory vendor advisory |
http://www.securityfocus.com/bid/101949 | vdb entry third party advisory |
https://access.redhat.com/errata/RHSA-2017:3403 | issue tracking third party advisory vendor advisory |
https://access.redhat.com/errata/RHSA-2017:3405 | issue tracking third party advisory vendor advisory |
https://www.postgresql.org/support/security/ | issue tracking vendor advisory |
http://www.securitytracker.com/id/1039752 | vdb entry third party advisory |
https://www.postgresql.org/about/news/1801/ | issue tracking vendor advisory |
https://access.redhat.com/errata/RHSA-2017:3404 | issue tracking third party advisory vendor advisory |