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.
Credit: secalert@redhat.com
Affected Software | Affected Version | How to fix |
---|---|---|
PostgreSQL PostgreSQL | =7.4.1 | |
PostgreSQL PostgreSQL | =7.4.2 | |
PostgreSQL PostgreSQL | =7.4.3 | |
PostgreSQL PostgreSQL | =7.4.4 | |
PostgreSQL PostgreSQL | =7.4.5 | |
PostgreSQL PostgreSQL | =7.4.6 | |
PostgreSQL PostgreSQL | =7.4.7 | |
PostgreSQL PostgreSQL | =7.4.8 | |
PostgreSQL PostgreSQL | =7.4.9 | |
PostgreSQL PostgreSQL | =7.4.10 | |
PostgreSQL PostgreSQL | =7.4.11 | |
PostgreSQL PostgreSQL | =7.4.12 | |
PostgreSQL PostgreSQL | =7.4.13 | |
PostgreSQL PostgreSQL | =7.4.14 | |
PostgreSQL PostgreSQL | =7.4.15 | |
PostgreSQL PostgreSQL | =7.4.16 | |
PostgreSQL PostgreSQL | =7.4.17 | |
PostgreSQL PostgreSQL | =7.4.18 | |
PostgreSQL PostgreSQL | =7.4.19 | |
PostgreSQL PostgreSQL | =7.4.20 | |
PostgreSQL PostgreSQL | =7.4.21 | |
PostgreSQL PostgreSQL | =7.4.22 | |
PostgreSQL PostgreSQL | =7.4.23 | |
PostgreSQL PostgreSQL | =7.4.24 | |
PostgreSQL PostgreSQL | =7.4.25 | |
PostgreSQL PostgreSQL | =7.4.26 | |
PostgreSQL PostgreSQL | =8.0.0 | |
PostgreSQL PostgreSQL | =8.0.1 | |
PostgreSQL PostgreSQL | =8.0.2 | |
PostgreSQL PostgreSQL | =8.0.3 | |
PostgreSQL PostgreSQL | =8.0.4 | |
PostgreSQL PostgreSQL | =8.0.5 | |
PostgreSQL PostgreSQL | =8.0.6 | |
PostgreSQL PostgreSQL | =8.0.7 | |
PostgreSQL PostgreSQL | =8.0.8 | |
PostgreSQL PostgreSQL | =8.0.9 | |
PostgreSQL PostgreSQL | =8.0.10 | |
PostgreSQL PostgreSQL | =8.0.11 | |
PostgreSQL PostgreSQL | =8.0.12 | |
PostgreSQL PostgreSQL | =8.0.13 | |
PostgreSQL PostgreSQL | =8.0.14 | |
PostgreSQL PostgreSQL | =8.0.15 | |
PostgreSQL PostgreSQL | =8.0.16 | |
PostgreSQL PostgreSQL | =8.0.17 | |
PostgreSQL PostgreSQL | =8.0.18 | |
PostgreSQL PostgreSQL | =8.0.19 | |
PostgreSQL PostgreSQL | =8.0.20 | |
PostgreSQL PostgreSQL | =8.0.21 | |
PostgreSQL PostgreSQL | =8.0.22 | |
PostgreSQL PostgreSQL | =8.1.0 | |
PostgreSQL PostgreSQL | =8.1.1 | |
PostgreSQL PostgreSQL | =8.1.2 | |
PostgreSQL PostgreSQL | =8.1.3 | |
PostgreSQL PostgreSQL | =8.1.4 | |
PostgreSQL PostgreSQL | =8.1.5 | |
PostgreSQL PostgreSQL | =8.1.6 | |
PostgreSQL PostgreSQL | =8.1.7 | |
PostgreSQL PostgreSQL | =8.1.8 | |
PostgreSQL PostgreSQL | =8.1.9 | |
PostgreSQL PostgreSQL | =8.1.10 | |
PostgreSQL PostgreSQL | =8.1.11 | |
PostgreSQL PostgreSQL | =8.1.12 | |
PostgreSQL PostgreSQL | =8.1.13 | |
PostgreSQL PostgreSQL | =8.1.14 | |
PostgreSQL PostgreSQL | =8.1.15 | |
PostgreSQL PostgreSQL | =8.1.16 | |
PostgreSQL PostgreSQL | =8.1.17 | |
PostgreSQL PostgreSQL | =8.1.18 | |
PostgreSQL PostgreSQL | =8.2 | |
PostgreSQL PostgreSQL | =8.2.1 | |
PostgreSQL PostgreSQL | =8.2.2 | |
PostgreSQL PostgreSQL | =8.2.3 | |
PostgreSQL PostgreSQL | =8.2.4 | |
PostgreSQL PostgreSQL | =8.2.5 | |
PostgreSQL PostgreSQL | =8.2.6 | |
PostgreSQL PostgreSQL | =8.2.7 | |
PostgreSQL PostgreSQL | =8.2.8 | |
PostgreSQL PostgreSQL | =8.2.9 | |
PostgreSQL PostgreSQL | =8.2.10 | |
PostgreSQL PostgreSQL | =8.2.11 | |
PostgreSQL PostgreSQL | =8.2.12 | |
PostgreSQL PostgreSQL | =8.2.13 | |
PostgreSQL PostgreSQL | =8.2.14 | |
PostgreSQL PostgreSQL | =8.3.1 | |
PostgreSQL PostgreSQL | =8.3.2 | |
PostgreSQL PostgreSQL | =8.3.3 | |
PostgreSQL PostgreSQL | =8.3.4 | |
PostgreSQL PostgreSQL | =8.3.5 | |
PostgreSQL PostgreSQL | =8.3.6 | |
PostgreSQL PostgreSQL | =8.3.7 | |
PostgreSQL PostgreSQL | =8.3.8 | |
PostgreSQL PostgreSQL | =8.4.1 |
Sign up to SecAlerts for real-time vulnerability data matched to your software, aggregated from hundreds of sources.