PostgreSQL全球开发组发布了所有受支持的PostgreSQL版本的更新,包括14.5,13.8,12.12,11.17和10.22,以及PostgreSQL 15的第三个beta版本。此版本关闭了一个安全漏洞,并修复了过去三个月中报告的 40 多个 bug。
有关更改的完整列表,请查看发行说明。
PostgreSQL 10 将于 2022 年 11 月 10 日停止接收修复程序。如果您在生产环境中运行PostgreSQL 10,我们强烈建议您计划升级到更新的,受支持的PostgreSQL版本,以便您可以继续收到错误和安全修复。有关详细信息,请参阅我们的版本控制策略。
CVE-2022-2625:扩展脚本替换不属于扩展的对象。
受影响的版本:10 - 14。安全团队通常不会测试不受支持的版本,但此问题已经很老了。
某些扩展使用 CREATE OR REPLACE or CREATE IF NOT EXISTS 命令。但是,有些不遵守记录的规则,即仅针对已知已是扩展成员的对象。攻击需要允许在至少一个架构中创建非临时对象,能够引诱或等待管理员在该架构中创建或更新受影响的扩展,并且能够引诱或等待受害者在 CREATE OR REPLACE or CREATE IF NOT EXISTS 命令中使用目标对象。
给定所有三个先决条件,攻击者可以作为受害者角色(可能是超级用户)运行任意代码。已知受影响的扩展包括PostgreSQL捆绑和非捆绑扩展。
PostgreSQL在核心服务器中阻止了这种攻击,因此无需修改单个扩展。
PostgreSQL项目感谢Sven Klemm报告这个问题。
这个版本标志着PostgreSQL 15的第三个beta版本,并让社区朝着在第三季度末正式发布的目标暂时又迈进了一步。
本着开源PostgreSQL社区的精神,我们强烈建议您在系统上测试PostgreSQL 15的新功能,以帮助我们消除可能存在的错误或其他问题。虽然我们不建议您在生产环境中运行 PostgreSQL 15 Beta 3,但我们鼓励您找到针对此 beta 版本运行典型应用程序工作负载的方法。
您的测试和反馈将帮助社区确保PostgreSQL 15坚持我们的标准,即提供世界上最先进的开源关系数据库的稳定,可靠的版本。请阅读有关我们的 beta 测试流程以及如何做出贡献的更多信息:
https://www.postgresql.org/developer/beta/
您可以在发行说明中找到有关所有PostgreSQL 15功能和更改的信息:
https://www.postgresql.org/docs/15/release-15.html
此更新修复了过去几个月中报告的40 多个 bug。下面列出的问题会影响 PostgreSQL 14。其中一些问题也可能影响PostgreSQL的其他受支持版本。
此版本中包括:
修复了在备用服务器上遇到缺少表空间目录时重播 CREATE DATABASE 预写日志 (WAL) 记录的问题。
添加对纯目录表空间的支持,而不是指向其他目录的符号链接。
修复 CREATE INDEX 中的权限检查以使用用户的权限。这修复了依赖于CVE-2022-1552修复之前的行为的损坏转储/恢复场景。
在扩展查询协议中,在 CREATE DATABASE 和其他无法在事务块中运行的命令之后强制立即提交。
修复有关检查事务可见性的争用条件,这在使用同步复制时更有可能发生。
修复了扩展统计的不正确的信息权限检查代码。
修复扩展的统计信息机制以处理布尔值表达式上的最常见值 (MCV) 类型的统计信息。
当存在关于数组变量的 MCV 类型扩展统计信息时,避免使用constant = ANY(array)子句进行规划器核心转储。
允许在计算扩展统计信息时取消 ANALYZE。
修复ALTER TABLE…启用/禁用触发器来处理分区表上触发器的递归。
拒绝FROM中超过1600列的ROW()表达式和函数。
修复逻辑复制订阅服务器中的内存泄漏。
修复了对目标表进行分区时副本标识的逻辑复制中的检查。
安排在提交后清理SPI_commit()中的错误,而不是期望调用方这样做。这包括对PL Python中相同场景的修复,该场景报告了Python 3.11上的崩溃以及旧版本的Python 3上的内存泄漏。
改进管道模式下libpq对空闲状态的处理。
在psql \watch命令中,用control-C回显一个换行符。
修复了pg_upgrade检测接受anyarray参数的函数的不可升级用法。
几个postgres_fdw修复,包括当存在WITH CHECK OPTION约束时防止批量插入。
有关可用更改的完整列表,请查看发行说明。
所有的PostgreSQL更新版本都是累积的。与其他次要版本一样,用户不需要转储并重新加载数据库或使用pg_upgrade来应用这个更新版本;你可以简单地关闭PostgreSQL并更新它的二进制文件。
跳过一个或多个更新版本的用户可能需要运行额外的更新后步骤;有关详细信息,请参阅早期版本的发布说明。
有关更多详细信息,请参阅发行说明。
要从 Beta 2、Beta 1 或早期版本的 PostgreSQL 升级到 PostgreSQL 15 Beta 3,您需要使用类似于在 PostgreSQL 的主要版本之间升级的策略(例如 pg_upgrade或pg_dumppg_restore)。有关详细信息,请访问有关升级的文档部分。
每个PostgreSQL版本的稳定性在很大程度上取决于您(社区)使用工作负载和测试工具测试即将发布的版本,以便在PostgreSQL 15正式发布之前查找错误和回归。
由于这是一个beta版本,数据库行为、特性细节和api仍然可以更改。您的反馈和测试将有助于确定新功能的最终调整,所以请在不久的将来进行测试。用户测试的质量有助于我们决定何时发布最终版本。
在PostgreSQL wiki中有一个公开的问题列表。你可以在PostgreSQL网站上使用这个表单来报告错误:https://www.postgresql.org/account/submitbug/
下载
发行说明
安全
版本控制策略
测试版测试信息
PostgreSQL 15 Beta 发行说明
PostgreSQL 15 开放问题
在推特上关注@postgresql
