PostgreSQL 全球开发组针对当前所有被支持版本发布了一次更新,版本包括:15.4、14.9、13.12、12.16 和 11.21,以及 PostgreSQL 16 的第三个测试版。此版本修复了两个安全漏洞并修复了过去几个月报告的 40 多个 bug。
如果你使用 BRIN 索引来查找NULL值, 则升级到此版本后需要重新索引它们。在 PostgreSQL 12 及更高版本上,你可以使用 REINDEX CONCURRENTLY 以避免阻止对受影响的索引和表的写入,例如:REINDEX INDEX CONCURRENTLY your_index_name;
NULL
REINDEX CONCURRENTLY
REINDEX INDEX CONCURRENTLY your_index_name;
有关更改的完整列表,可查看 发行说明。
PostgreSQL 11 将于 2023 年 11 月 9 日停止接收修复。如果你在生产环境中运行 PostgreSQL 11,建议制定计划升级到更新的受支持版本的 PostgreSQL。参阅版本控制政策以获取更多信息。
CVE-2023-39417 :引用中的扩展脚本@substitutions@允许 SQL 注入。
@substitutions@
支持的、易受攻击的版本:11 - 15。安全团队通常不会测试不受支持的版本,但这个问题已经存在很久了。
如果扩展脚本在 quoting 结构 (dollar quoting, '', or "") 内使用 @extowner@、@extschema@或@extschema:...@,则容易受到攻击。没有捆绑的扩展名存在漏洞。在文档示例和非捆绑扩展中确实存在漏洞。因此,攻击的先决条件是管理员安装了易受攻击的、受信任的、非捆绑扩展的文件。在这一前提条件下,拥有数据库级CREATE权限的攻击者就能以引导超级用户身份执行任意代码。PostgreSQL 将在核心服务器中阻止这种攻击,因此无需修改个别扩展。
''
""
@extowner@
@extschema@
@extschema:...@
CREATE
CVE-2023-39418:MERGE无法强制执行UPDATE或SELECT行安全策略。
MERGE
UPDATE
SELECT
支持的、易受攻击版本:15。
PostgreSQL 15 引入了MERGE命令,该命令无法根据为UPDATE和SELECT定义的行安全策略测试新行 。如果UPDATE和SELECT策略禁止某些行,而INSERT策略不禁止,则用户可以存储此类行。后续后果取决于应用程序。这仅影响用于CREATE POLICY定义行安全策略的数据库。
INSERT
CREATE POLICY
下面列出的问题会影响 PostgreSQL 15,其中一些问题也可能会影响其他受支持的 PostgreSQL 版本。
REINDEX
ALTER EXTENSION ... SET SCHEMA
SERIALIZABLE
datetime()
pg_hba.conf
pg_ident.conf
FATAL
VACUUM
pg_waldump
walsender
difference()
intarray
pg_dump
BEGIN ATOMIC
有关可用更改的完整列表,可查看 发行说明。
psql
\drg
pg_waldump --save-fullpage
参阅发行说明以获取新功能和更改功能的完整列表。
下载地址:https://www.postgresql.org/download/
评论删除后,数据将无法恢复
PostgreSQL 15.4、14.9、13.12、12.16、11.21 和 16 Beta 3 发布
PostgreSQL 全球开发组针对当前所有被支持版本发布了一次更新,版本包括:15.4、14.9、13.12、12.16 和 11.21,以及 PostgreSQL 16 的第三个测试版。此版本修复了两个安全漏洞并修复了过去几个月报告的 40 多个 bug。
如果你使用 BRIN 索引来查找
NULL值, 则升级到此版本后需要重新索引它们。在 PostgreSQL 12 及更高版本上,你可以使用REINDEX CONCURRENTLY以避免阻止对受影响的索引和表的写入,例如:REINDEX INDEX CONCURRENTLY your_index_name;有关更改的完整列表,可查看 发行说明。
PostgreSQL 11 EOL 通知
PostgreSQL 11 将于 2023 年 11 月 9 日停止接收修复。如果你在生产环境中运行 PostgreSQL 11,建议制定计划升级到更新的受支持版本的 PostgreSQL。参阅版本控制政策以获取更多信息。
安全问题
CVE-2023-39417 :引用中的扩展脚本
@substitutions@允许 SQL 注入。支持的、易受攻击的版本:11 - 15。安全团队通常不会测试不受支持的版本,但这个问题已经存在很久了。
如果扩展脚本在 quoting 结构 (dollar quoting,
'', or"") 内使用@extowner@、@extschema@或@extschema:...@,则容易受到攻击。没有捆绑的扩展名存在漏洞。在文档示例和非捆绑扩展中确实存在漏洞。因此,攻击的先决条件是管理员安装了易受攻击的、受信任的、非捆绑扩展的文件。在这一前提条件下,拥有数据库级CREATE权限的攻击者就能以引导超级用户身份执行任意代码。PostgreSQL 将在核心服务器中阻止这种攻击,因此无需修改个别扩展。CVE-2023-39418:
MERGE无法强制执行UPDATE或SELECT行安全策略。支持的、易受攻击版本:15。
PostgreSQL 15 引入了
MERGE命令,该命令无法根据为UPDATE和SELECT定义的行安全策略测试新行 。如果UPDATE和SELECT策略禁止某些行,而INSERT策略不禁止,则用户可以存储此类行。后续后果取决于应用程序。这仅影响用于CREATE POLICY定义行安全策略的数据库。错误修复和改进
下面列出的问题会影响 PostgreSQL 15,其中一些问题也可能会影响其他受支持的 PostgreSQL 版本。
NULL值的处理。此修复不适用于现有 BRIN 索引 - 用户将需要运行REINDEX来修复任何用于搜索 NULL 值的 BRIN 索引。ALTER EXTENSION ... SET SCHEMA错误。SERIALIZABLE事务隔离模式冲突检测中的 race conditions。datetime()方法的输入中接受小数秒 。pg_hba.conf和pg_ident.conf中的 token 限制增至 10,240 字节。FATAL错误而不是 C++ 异常。VACUUM。虽然此修复允许 VACUUM 继续,但用户仍然需要REINDEX修复损坏的索引。pg_waldump和walsender的不准确消息。difference()函数以正确处理空输入。intarray的若干修复,包括禁止在 GiST 索引中使用过大的输入数组。pg_dump以正确处理需要解析时依赖于唯一索引的SQL 标准函数体 (BEGIN ATOMIC)。有关可用更改的完整列表,可查看 发行说明。
PostgreSQL 16 Beta 3 中的修复
psql中添加\drg命令,以显示有关角色授权信息。pg_waldump --save-fullpage生成的文件名中添加 timeline ID。参阅发行说明以获取新功能和更改功能的完整列表。
下载地址:https://www.postgresql.org/download/