First published: Thu Dec 10 2009(Updated: )
Description of problem: All currently shipped versions of PostgreSQL are vulnerable to a new type of attack pointed out by Gurjeet Singh. The scenario is similar to <a href="https://access.redhat.com/security/cve/CVE-2007-6600">CVE-2007-6600</a> in that an attacker must be an authenticated user so that he can create a table with attached indexes, which reference functions he has created. Subsequent maintenance operations performed by database superusers will then have to execute those functions. In -6600 the threat was simply to acquire the caller's privileges directly. However, another possibility is that the index function can modify session-local state in a way that will subvert later operations in the same session. Examples include changing the search_path so that an attacker-created function will be invoked instead of the intended one, or replacing an existing prepared statement with a new one containing code of the attacker's choosing. There have up to now been only very limited security controls on most session-local state, so it was easy to think of possible attack vectors once the basic issue was recognized. This attack is less dangerous than -6600 since it only succeeds if the calling session does something subvert-able later. In particular it's not clear that there's any major risk for automatic vacuum operations. But superusers who do manual vacuuming or reindexing are clearly at risk. Upstream versions due to be announced Monday 12-14 contain assorted fixes meant to mitigate this scenario.
Affected Software | Affected Version | How to fix |
---|---|---|
PostgreSQL JDBC Driver | < |
Sign up to SecAlerts for real-time vulnerability data matched to your software, aggregated from hundreds of sources.
REDHAT-BUG-546321 is classified as a medium severity vulnerability affecting PostgreSQL.
To fix REDHAT-BUG-546321, update your PostgreSQL installation to the latest patched version.
All authenticated users of PostgreSQL are potentially affected by REDHAT-BUG-546321.
All currently shipped versions of PostgreSQL are vulnerable to REDHAT-BUG-546321.
The attack detailed in REDHAT-BUG-546321 exploits vulnerabilities when an authenticated user performs certain actions.