PostgreSQL 全球开发组发布了所有支持的 PostgreSQL 版本的更新,包括 15.2、14.7、13.10、12.14 和 11.19。本次发布修复了一个安全漏洞,并解决了过去几个月报告的 60 多个错误。
有关更改的完整列表,请参阅 发行说明。
受影响版本:12 - 15。
已修改的、未经验证的服务器或未经验证的中间人可以在建立 Kerberos 传输加密过程中发送未终止的字符串。当 libpq 客户端应用程序具有 Kerberos 凭证缓存且未显式禁用 gssencmode 选项时,服务器会导致 libpq 读取过多,并报告一个错误消息,其中包含来自其接收缓冲区及之后的未初始化字节。如果 libpq 的调用者以某种方式使攻击者能够访问该消息,则会泄露读取过多的字节。我们尚未确认或排除导致崩溃或在泄露的字节中存在显著、机密信息的攻击的可行性。
PostgreSQL 项目感谢 Jacob Champion 报告此问题。
本次更新修复了过去几个月报告的 60 多个错误。以下列出的问题影响 PostgreSQL 15。其中一些问题也可能影响其他支持的 PostgreSQL 版本。
包含在此发布版本中
GENERATED 列或子表生成的列具有不同依赖项时,正确更新子表中的 GENERATED 列。MERGE 命令的几项修复。WITH RECURSIVE ... CYCLE 查询访问其 SET 输出列。BEFORE ROW 触发器可能无法处理本应可用的行。jsonpath 存在性检查中使用未定义的变量。text 列的 jsonb 索引操作。checkpoint_completion_target 的更新值。recovery_target_xid 模式下记录正确的结束时间戳。VACUUM 结束时发生“错误的元组长度”失败。ANALYZE 后立即提交。DROP DATABASE 和逻辑复制工作进程之间的死锁。CREATE SUBSCRIPTION 连接尝试失败时,修复了会话生命周期的少量内存泄漏。hot_standby 的副本处理 SELECT 查询时,性能得到提升。pgoutput,使其不会发送表中未包含在复制 列列表 中的列。pg_basebackup 中非常大的表空间映射文件可能损坏的问题。pg_dump 在 --if-exists 模式下,当 public schema 的所有者非默认时产生的无害警告。psql 命令 \sf 和 \ef,使其能够处理具有 SQL 标准函数体(即 BEGIN ATOMIC)的 SQL 语言函数。ALTER FUNCTION/PROCEDURE/ROUTINE ... SET SCHEMA 的制表符补全。pageinspect 扩展,将其磁盘访问函数标记为 PARALLEL RESTRICTED。seg 扩展,使其在输入数字超过 127 位时不会崩溃或打印乱码。本次发布还更新了时区数据文件到 tzdata release 2022g,以应对格陵兰和墨西哥的 DST 法规变更,并对加拿大北部、哥伦比亚和新加坡进行了历史性修正。值得注意的是,一个新的时区 America/Ciudad_Juarez 已从 America/Ojinaga 中分离出来。
有关所有更改的完整列表,请参阅 发布说明。
所有 PostgreSQL 更新版本都是累积的。与其他次要版本一样,用户不需要转储和重新加载数据库或使用 pg_upgrade 来应用此更新版本;您可以直接关闭 PostgreSQL 并更新其二进制文件。
跳过了一个或多个更新版本的用户可能需要执行额外的、更新后的步骤;有关详细信息,请参阅早期版本的发布说明。
有关更多详细信息,请参阅 发行说明。