PostgreSQL 全球开发组已发布对所有受支持的 PostgreSQL 版本(包括 16.1、15.5、14.10、13.13、12.17 和 11.22)的更新。此版本修复了三个安全漏洞以及过去几个月报告的 55 个以上错误。
此版本包括对索引的修复,在某些情况下,我们建议重新索引。请参阅“更新”部分了解更多详情。
有关更改的完整列表,请参阅 发行说明。
这是 PostgreSQL 11 的最后一个发布版本。PostgreSQL 11 已进入生命周期终点,将不再接收安全和错误修复。如果您在生产环境中使用 PostgreSQL 11,我们建议您计划升级到更新的支持版本。有关更多信息,请参阅我们的版本策略。
CVSS v3 基本评分:4.3
受支持且存在漏洞的版本:11 - 16。安全团队通常不测试不受支持的版本,但这个问题非常陈旧。
接收“未知”类型参数的某些聚合函数调用,可能从“未知”类型值的末尾到下一个零字节泄露服务器内存。通常通过没有类型指定的字符串字面量获取“未知”类型的值。我们尚未确认或排除导致泄露字节中包含重要机密信息的攻击的可行性。
PostgreSQL 项目感谢 Jingzhou Fu 报告此问题。
CVSS v3 基本评分:8.8
受支持且存在漏洞的版本:11 - 16。安全团队通常不测试不受支持的版本,但这个问题非常陈旧。
在修改某些 SQL 数组值时,缺少溢出检查允许已认证的数据库用户将任意字节写入便于任意代码执行的内存区域。缺少溢出检查还允许已认证的数据库用户读取服务器内存的广泛区域。CVE-2021-32027 的修复覆盖了此类攻击中的一部分,但遗漏了其他攻击。
PostgreSQL 项目感谢 Pedro Gallegos 报告此问题。
pg_signal_backend 可以向某些超级用户进程发送信号CVSS v3 基本评分:2.2
受支持且存在漏洞的版本:11 - 16。安全团队通常不测试不受支持的版本,但这个问题非常陈旧。
文档说明 pg_signal_backend 角色不能向“超级用户拥有的后端”发送信号。相反,它可以向后台工作进程(包括逻辑复制启动器)发送信号。它可以向 autovacuum 工作进程和 autovacuum 启动器发送信号。向 autovacuum 工作进程和这两个启动器发送信号不会带来有意义的利用,因此利用此漏洞需要一个非核心的、具有不那么健壮的后台工作进程的扩展。例如,一个不会自动重启的非核心后台工作进程将面临相对于该特定后台工作进程的拒绝服务。
PostgreSQL 项目感谢 Hemanth Sandrana 和 Mahendrakar Srinivasarao 报告此问题。
本次更新修复了过去几个月报告的 55 个以上错误。以下列出的问题会影响 PostgreSQL 16。其中一些问题也可能影响 PostgreSQL 的其他受支持版本。
interval 列进行去重的问题。请在安装此更新后重新索引包含 interval 列的任何 B 树索引。minmax_multi opsclass 时,为 BRIN 索引中的 date、timestamptz 和 timestamp 值提供更有效的索引。虽然不是必需的,但我们建议在安装此更新后重新索引包含这些数据类型的 BRIN 索引。如果将 pgrowlocks() 应用于分区表,则抛出正确的错误。
修复了在使用 READ COMMITTED 模式进行 MERGE 操作期间,并发更新行的不一致重校验问题。
UPDATE/DELETE/MERGE 中的目标表。tsvector 的超额分配问题。ALTER SUBSCRIPTION 以应用 run_as_owner 选项中的更改。COPY FROM 的若干问题,pg_control 处理撕裂读取的若干问题。ORDER BY 或 DISTINCT 选项的聚合函数时发生的“找不到用于排序的路径键项”错误。track_io_timing 时,将关系扩展操作所花费的时间计入写时间。CALL 语句的依赖关系,并在需要时重新规划它们。FATAL。pg_dump 以转储订阅的新 run_as_owner 选项。pg_restore,以便选择性还原会包含选定表的表级别和列级别 ACL。pg_upgrade 添加了逻辑,以检查是否使用了过时的数据类型 abstime、reltime 和 tinterval。vacuumdb,使其多个 -N 开关能够实际排除多个模式中的表。amcheck 将不再报告中断的页面删除为损坏。btree_gin 索引在 interval 列上使用 < 和 <= 运算符时正确返回数据的问题。所有 PostgreSQL 更新版本都是累积的。与其他次要版本一样,用户不需要转储和重新加载数据库或使用 pg_upgrade 来应用此更新版本;您可以直接关闭 PostgreSQL 并更新其二进制文件。
我们建议您在应用此更新后重新索引某些类型的索引,包括
interval 数据类型的 B 树索引date、timestamptz 和 timestamp 数据类型以及 minmax_multi opsclass 的 BRIN 索引在 PostgreSQL 12 及以上版本中,您可以使用 REINDEX CONCURRENTLY 来避免阻塞受影响索引和表的写入,例如
REINDEX INDEX CONCURRENTLY your_index_name;
跳过一个或多个更新版本的用户可能需要运行额外的更新后步骤;请参阅早期版本的发行说明以获取详细信息。
有关更多详细信息,请参阅 发行说明。
如果您对此版本公告有任何更正或建议,请将其发送至 pgsql-www@lists.postgresql.org 公共 邮件列表。