PostgreSQL 15.3、14.8、13.11、12.15 和 11.20 版本已发布!

发布于 2023-05-11,作者:PostgreSQL 全球开发小组
PostgreSQL 项目 安全

PostgreSQL 全球开发小组发布了对所有受支持的 PostgreSQL 版本的更新,包括 15.3、14.8、13.11、12.15 和 11.20。此版本修复了两个安全漏洞以及过去几个月报告的 80 多个错误。

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

PostgreSQL 11 终止支持通知

PostgreSQL 11 将于 2023 年 11 月 9 日停止接收修复。如果您在生产环境中运行 PostgreSQL 11,我们建议您制定计划升级到更新、受支持的 PostgreSQL 版本。请参阅我们的版本控制策略了解更多信息。

安全问题

CVE-2023-2454CREATE SCHEMA ... schema_element 破坏了保护性的 search_path 更改。

受影响的版本:11 - 15。安全团队通常不测试不受支持的版本,但这个问题已经存在很久了。

这使得拥有数据库级 CREATE 权限的攻击者可以以引导超级用户的身份执行任意代码。数据库所有者默认拥有该权限,并且显式授权可能会将其扩展到其他用户。

PostgreSQL 项目感谢 Alexander Lakhin 报告此问题。

CVE-2023-2455:行安全策略在内联后忽略用户 ID 更改。

受影响的版本:11 - 15。安全团队通常不测试不受支持的版本,但这个问题已经存在很久了。

虽然 CVE-2016-2193 修复了行安全和用户 ID 更改之间的大部分交互,但它遗漏了涉及函数内联的场景。这会导致在角色特定策略被使用的情况下,并且给定查询在一个角色下计划然后在其他角色下执行时,可能应用不正确的策略。这种情况可能发生在安全定义函数下,或者当一个普通用户和查询最初被计划然后在多个 SET ROLE 之间重用时。应用不正确的策略可能会允许用户完成原本禁止的读取和修改。这仅影响使用了 CREATE POLICY 来定义行安全策略的数据库。

PostgreSQL 项目感谢 Wolfgang Walther 报告此问题。

错误修复和改进

此更新修复了过去几个月报告的 80 多个错误。下面列出的问题会影响 PostgreSQL 15。其中一些问题也可能影响其他受支持的 PostgreSQL 版本。

此版本包含

  • 使用 STRATEGY = WAL_LOG 时,对 CREATE DATABASE 的几个修复,包括可能丢失对模板/源数据库的修改的潜在损坏。
  • 修复 CREATE SCHEMA AUTHORIZATION 导致的崩溃。
  • MERGE 的几个修复。
  • 对分区表中的触发器的几个修复。
  • 禁止更改存储在索引中的复合类型。
  • 确保从启用了行级安全性的父表使用COPY TO时,不会从子表复制任何行。
  • 调整与文本搜索相关的字符分类逻辑,以正确检测当数据库的默认排序规则使用 ICU 提供程序时,当前区域设置是否为 C。
  • 重新允许 ISO-8601 间隔字段中的指数表示法。
  • 改进各种无效 JSON 字符串文字的错误报告。
  • 修复由于 vacuum_defer_cleanup_age 大于当前 64 位 xid 而导致的数据损坏。
  • 对查询解析器和计划器的几个修复,包括更好地检测不正确嵌套的聚合。
  • 修复布尔值 IS NOT TRUEIS NOT FALSE 条件下的分区剪枝错误。在此之前,NULL 分区会被意外剪枝。
  • 修复 备忘录计划 执行中的内存泄漏。
  • 修复执行批量插入时使用分区的外部表上的缓冲区引用计数泄漏。
  • 恢复对亚毫秒级 vacuum_cost_delay 设置的支持。
  • 视图和规则的几个修复。
  • 避免在使用多个扫描键扫描多列BRIN 索引时进行不必要的工作。
  • 在逻辑复制 UPDATEDELETE 操作期间,忽略删除的列和生成的列。
  • 对等待事件的命名和可用性的几个修复。
  • 使用 SCRAM-SHA-256 通道绑定支持 RSA-PSS 证书。此功能需要使用 OpenSSL 1.1.1 或更高版本构建。
  • 避免 Windows 上进程 ID 跟踪中的竞争条件。
  • 修复使用强制转换表达式的 PL/pgSQL DO 块的会话内的内存泄漏。
  • 在将列表结构转换为多维 SQL 数组时,收紧来自 PL/PerlPL/Python 的数组维度检查。
  • 修复 pg_dump,以便可以成功恢复在 枚举类型列上进行哈希分区的分区表。
  • 修复 pg_trgm,其中不可满足的正则表达式可能在使用 GiST 或 GIN 索引时导致崩溃。
  • 限制 pg_walinspectpg_get_wal_records_info() 的内存使用量。

此版本还将时区数据文件更新为 tzdata 2023c 版本,以适应埃及、格陵兰、摩洛哥和巴勒斯坦的 DST 法律变更。在观察莫斯科时间时,Europe/Kirov 和 Europe/Volgograd 现在使用 MSK/MSD 缩写而不是数字缩写,以与其他观察莫斯科时间的时区保持一致。此外,America/Yellowknife 不再与 America/Edmonton 不同;这会影响该地区的一些 1948 年之前的时间戳。

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

更新

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

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

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

链接

如果您对此版本公告有更正或建议,请将其发送到 pgsql-www@lists.postgresql.org 公共邮件列表