The PostgreSQL developers released updates for all major branches of the popular open-source database system on Thursday in order to address several vulnerabilities, including a high-risk one that could allow attackers to crash the server, modify configuration variables as superuser or execute arbitrary code if certain conditions are met.
"This update fixes a high-exposure security vulnerability in versions 9.0 and later," the PostgreSQL Global Development Group said in the release announcement. "All users of the affected versions are strongly urged to apply the update immediately."
[ Andrew C. Oliver answers the question on everyone's mind: Which freaking database should I use? | Keep up with the latest approaches to managing information overload and compliance in InfoWorld's Enterprise Data Explosion Digital Spotlight. ]
The high-risk vulnerability, identified as CVE-2013-1899, can be exploited by sending maliciously crafted connection requests to a targeted PostgreSQL server that include command-line switches specifying a database name beginning with the "-" character. Depending on the server's configuration, successful exploit can result in persistent denial of service, privilege escalation or arbitrary code execution.
The vulnerability can be exploited by a remote unauthenticated attacker to append error messages to files located in the PostgreSQL data directory. "Files corrupted in this way may cause the database server to crash, and to refuse to restart," the PostgreSQL developers said in an advisory accompanying the new releases. "The database server can be fixed either by editing the files and removing the garbage text, or restoring from backup."
Furthermore, if the attacker has access to a database user whose name is identical to a database name, he can leverage the vulnerability to temporarily modify a configuration variable with superuser privileges. If this condition is met and the attacker can also write files somewhere on the system -- for example in the /tmp directory -- he can exploit the vulnerability to load and execute arbitrary C code, the PostgreSQL developers said.
Systems that don't restrict access to the PostgreSQL network port, which is common for PostgreSQL database servers running in public clouds, are especially vulnerable to these attacks.
The PostgreSQL developers advise server administrators to update their PostgreSQL installations to the newly released 9.0.13, 9.1.9 or 9.2.4 versions, and to block access to their database servers from untrusted networks. The 8.4 branch of PostgreSQL is not affected by CVE-2013-1899, but PostgreSQL 8.4.17 was also released to fix other issues.
All the new releases also address less serious security fixes, including CVE-2013-1900, which could allow a database user to guess random numbers generated by contrib/pgcrypto functions, and CVE-2013-1901, which could allow an unprivileged user to run commands that could interfere with in-progress backups.
Two other security issues with the PostgreSQL graphical installers for Linux and Mac OS X have also been addressed. They allow the insecure passing of superuser passwords to a script (CVE-2013-1903) and the use of predictable filenames in /tmp (CVE-2013-1902), the PostgreSQL developers said.
As a result of the new PostgreSQL security updates, VMware also released fixes for its vFabric Postgres relational database product that's optimized for virtual environments. The VMware updates are vFabric Postgres 9.2.4 and 9.1.9.