PostgreSQL 13.2、12.6、11.11、10.16、9.6.21 和 9.5.25 发布!

发布于 2021-02-11,作者:PostgreSQL 全球开发组
PostgreSQL 项目 安全

PostgreSQL 全球开发组发布了我们数据库系统所有受支持版本的更新,包括 13.2、12.6、11.11、10.16、9.6.21 和 9.5.25。此版本修复了两个安全漏洞,并修复了过去三个月报告的 80 多个错误。

此外,这是 PostgreSQL 9.5 的最终版本。如果您在生产环境中运行 PostgreSQL 9.5,我们建议您制定升级计划。

有关完整的更改列表,请查看发行说明

安全问题

CVE-2021-3393:分区约束违规错误泄露被拒绝的列的值

受影响的版本:11 - 13。

对分区表具有 UPDATE 权限但缺少某些列的 SELECT 权限的用户可能会从错误消息中获取被拒绝的列的值。这类似于 CVE-2014-8161,但利用的条件更为罕见。

PostgreSQL 项目感谢 Heikki Linnakangas 报告此问题。

CVE-2021-20229:单列 SELECT 权限允许读取所有列

受影响的版本:13。

对单个列具有 SELECT 权限的用户可以构造一个返回表的所有列的特殊查询。

此外,使用列级权限的存储视图将具有不完整的列使用位图。在依赖于列级权限进行安全性的安装中,建议在所有用户定义的视图上执行 CREATE OR REPLACE,以强制重新解析它们。

PostgreSQL 项目感谢 Sven Klemm 报告此问题。

错误修复和改进

此更新修复了过去几个月报告的 80 多个错误。其中一些问题仅影响版本 13,但也可能适用于其他受支持的版本。

其中一些修复包括

  • 修复了 GiST 索引中的一个问题,并发插入可能导致索引损坏,条目放置在错误的页面中。您应该 REINDEX 任何受影响的 GiST 索引。
  • 修复 CREATE INDEX CONCURRENTLY 以确保并发准备的事务中的行包含在索引中。已启用准备事务的安装应 REINDEX 任何并发构建的索引。
  • 修复哈希聚合溢出到磁盘时可能出现的不正确查询结果。
  • 修复增量排序中的边缘情况,这可能导致排序结果不正确或“在有界排序中检索了太多元组”错误。
  • 避免当通过扩展查询协议(例如来自预处理语句)执行执行事务回滚的 CALLDO 语句时崩溃。
  • 修复当 PL/pgSQL 过程对另一个具有执行 COMMITROLLBACKOUT 参数的过程使用 CALL 时发生的故障。
  • 删除分区表上不再适用的限制的 BEFORE UPDATE 触发器中的错误。
  • 修复了多个带有连接的查询,这些查询可能导致诸如“relid N 没有关系条目”或“未能构建任何 N 路连接”之类的错误消息。
  • 在尝试并行化排序时,不要在 ORDER BY 表达式中考虑并行限制或设置返回函数。
  • 修复 ALTER DEFAULT PRIVILEGES 以安全地处理重复的参数。
  • 修复了多个当 wal_level 设置为 minimal 时的行为,包括在事务中重写表时。
  • 修复了多个 CREATE TABLE LIKE 的问题。
  • 确保在提交事务时及时释放已删除关系(例如表)的已分配磁盘空间。
  • 修复 CLUSTER 的进度报告。
  • 修复 COPY FROM 中反斜杠转义的多字节字符的处理。
  • 修复最近在 LISTEN/NOTIFY 队列处理中引入的竞争条件。
  • 允许 jsonb 连接运算符(||)处理 JSON 数据类型的所有组合。
  • 修复 WAL 读取逻辑,以便备用服务器可以正确处理时间线切换。此问题可能会出现类似于“请求的 WAL 段已被删除”的错误。
  • 修复了 walsender 进程在逻辑解码和复制周围的几个泄漏问题。
  • 确保 krb_server_keyfile 的非空值始终覆盖服务器环境中 KRB5_KTNAME 的任何设置
  • 修复了多个 GSS 加密支持问题。
  • 确保 \connect 命令允许在 connection_string 参数中使用密码。
  • 修复了 \help 命令的各种错误。
  • 修复了 pg_dump 的多个问题。
  • 确保 pg_rewind 在回滚备用服务器时考虑所有 WAL。
  • 修复 contrib/auto_explain 中的内存泄漏。
  • 确保如果删除用户映射或外服务器对象依赖的连接,则关闭所有 postgres_fdw 连接。
  • 修复 JIT 编译以兼容 LLVM 11 和 LLVM 12。

此更新还包含 tzdata 版本 2021a,用于俄罗斯(伏尔加格勒地区)和南苏丹的 DST 法律变更,以及澳大利亚、巴哈马、伯利兹、百慕大、加纳、以色列、肯尼亚、尼日利亚、巴勒斯坦、塞舌尔和瓦努阿图的历史更正。

值得注意的是,澳大利亚/库里地区已更正为与澳大利亚/霍巴特相同。

有关可用更改的完整列表,请查看发行说明

PostgreSQL 9.5 已 EOL

这是 PostgreSQL 9.5 的最终版本。如果您在生产环境中运行 PostgreSQL 9.5,我们建议您制定升级到更新、受支持的 PostgreSQL 版本的计划。请参阅我们的版本控制策略以获取更多信息。

更新

所有 PostgreSQL 更新版本都是累积的。与其他次要版本一样,用户不需要转储并重新加载其数据库或使用 pg_upgrade 来应用此更新版本;您可以简单地关闭 PostgreSQL 并更新其二进制文件。

跳过一个或多个更新版本的用户可能需要运行其他更新后步骤;请参阅早期版本的发行说明以了解详细信息。

有关更多详细信息,请参阅发行说明

注意:PostgreSQL 9.6 将于 2021 年 11 月 11 日停止接收修复。请参阅我们的版本控制策略以获取更多信息。

链接