PostgreSQL 全球开发组已发布对我们数据库系统所有受支持版本的更新,包括 11.1、10.6、9.6.11、9.5.15、9.4.20 和 9.3.25。此版本修复了一个安全问题以及过去三个月报告的错误。
使用受影响版本的 PostgreSQL 的所有用户应尽快更新。如果您在安装中使用 pg_stat_statements
,请参阅下面的“更新”说明,了解可能需要的任何更新后步骤。
此更新也是 PostgreSQL 9.3 的最终版本,该版本现已停止维护,将不再收到任何错误或安全修复。如果您的环境仍在使用 PostgreSQL 9.3,请尽快计划更新到社区支持的版本。有关更多信息,请参阅我们的版本策略。
此版本已修复一个安全漏洞
pg_upgrade
和 pg_dump
中的 SQL 注入,通过 CREATE TRIGGER ... REFERENCING
。受影响版本:10、11
通过使用精心设计的触发器定义,当超级用户在数据库上运行 pg_upgrade
或在 pg_dump 转储/恢复周期期间,攻击者可以使用超级用户权限运行任意 SQL 语句。此攻击需要对某些非临时模式具有 CREATE
权限或对表具有 TRIGGER
权限。这在默认的 PostgreSQL 配置中是可利用的,其中所有用户都对 public
模式具有 CREATE
权限。
此更新还修复了过去几个月报告的许多错误。其中一些问题仅影响版本 11,但许多问题影响所有受支持的版本。
这些版本包括以下修复:
ON COMMIT DELETE ROWS
应用于分区临时表的问题LEFT JOIN
时如何处理 NULL
值CALL
语句中使用命名或默认参数的几个问题NULL
输入的聚合)强制执行严格性检查的问题CASE
语句pg_verify_checksums
错误地报告不应该有校验和的文件的错误wal_level
设置为不支持现有复制槽的值时启动 PostgreSQL 服务器contrib/ltree
和 contrib/pg_trgm
psql
在下个命令之前不会报告收到来自 NOTIFY
调用的消息的情况此更新还包含 tzdata 2018g 版本,用于智利、斐济、摩洛哥和俄罗斯(伏尔加格勒)的 DST 法律变更,以及对中国、夏威夷、日本、澳门和朝鲜的历史更正。
PostgreSQL 9.3 现已停止维护,将不再收到任何错误或安全修复。我们敦促用户尽快开始计划升级到更高版本的 PostgreSQL。有关更多信息,请参阅我们的版本策略。
所有 PostgreSQL 更新版本都是累积的。与其他次要版本一样,用户不需要转储和重新加载他们的数据库或使用 pg_upgrade
来应用此更新版本;您可以简单地关闭 PostgreSQL 并更新其二进制文件。
如果您的系统正在使用 pg_stat_statements
并且您正在运行 PostgreSQL 10 或 PostgreSQL 11 的版本,我们建议您在升级后执行以下命令
ALTER EXTENSION pg_stat_statements UPDATE;
跳过一个或多个更新版本的用户可能需要运行其他更新后步骤;有关详细信息,请参阅早期版本的发行说明。