The \gset
meta-command, which sets psql
variables based on query results, does not distinguish variables that control psql
behavior. If an interactive psql
session uses \gset
when querying a compromised server, the attacker can execute arbitrary code as the operating system account running psql
. Using \gset
with a prefix not found among specially treated variables, e.g. any lowercase string, precludes the attack in an unpatched psql
.
The PostgreSQL project thanks Nick Cleaton for reporting this problem.
Affected Version | Fixed In | Fix Published |
---|---|---|
13 | 13.1 | Nov. 12, 2020 |
12 | 12.5 | Nov. 12, 2020 |
11 | 11.10 | Nov. 12, 2020 |
10 | 10.15 | Nov. 12, 2020 |
9.6 | 9.6.20 | Nov. 12, 2020 |
9.5 | 9.5.24 | Nov. 12, 2020 |
For more information about PostgreSQL versioning, please visit the versioning page.
Overall Score | 7.5 |
---|---|
Component | client |
Vector | AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:H |
If you wish to report a new security vulnerability in PostgreSQL, please send an email to security@postgresql.org.
For reporting non-security bugs, please see the Report a Bug page.