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
中可能损坏的非常大的表空间映射文件。public
架构具有非默认所有者时,删除 pg_dump
在 --if-exists
模式下的无害警告。psql
命令 \sf
和 \ef
以处理具有SQL 标准函数体(即 BEGIN ATOMIC
)的 SQL 语言函数。ALTER FUNCTION/PROCEDURE/ROUTINE ... SET SCHEMA
的制表符补全。pageinspect
扩展以将其磁盘访问函数标记为 PARALLEL RESTRICTED
。seg
扩展,以避免在输入数字超过 127 位时崩溃或打印垃圾信息。此版本还更新了时区数据文件,使其符合 tzdata 2022g 版本,以适应格陵兰和墨西哥的夏令时法律变更,以及加拿大北部、哥伦比亚和新加坡的历史更正。值得注意的是,一个新的时区 America/Ciudad_Juarez 已从 America/Ojinaga 分离出来。
有关可用的完整更改列表,请查看发行说明。
所有 PostgreSQL 更新版本都是累积的。与其他次要版本一样,用户无需转储和重新加载数据库或使用 pg_upgrade
来应用此更新版本;您可以简单地关闭 PostgreSQL 并更新其二进制文件。
跳过一个或多个更新版本的用户可能需要运行其他更新后步骤;请参阅早期版本的发行说明以了解详细信息。
有关更多详细信息,请参阅发行说明。