PostgreSQL 全球开发小组已发布对所有受支持的 PostgreSQL 版本的更新,包括 17.3、16.7、15.11、14.16 和 13.19。此版本修复了过去几个月报告的 1 个安全漏洞和 70 多个错误。
有关更改的完整列表,请查看 发行说明。
安全问题
CVE-2025-1094:PostgreSQL 引用 API 未能中和未通过编码验证的文本中的引用语法
CVSS v3.1 基本分数:8.1
受支持的、易受攻击的版本:13 - 17。
libpq PostgreSQL函数PQescapeLiteral()、PQescapeIdentifier()、PQescapeString()和 中引号语法的不当中和PQescapeStringConn()允许数据库输入提供程序在某些使用模式下实现 SQL 注入。具体来说,SQL 注入要求应用程序使用函数结果构造对 PostgreSQL 交互式终端 psql 的输入。同样,PostgreSQL 命令行实用程序中引号语法的不当中和允许命令行参数源在client_encoding 和BIG5为 或server_encoding 之一时实现 SQL 注入。PostgreSQL 17.3、16.7、15.11、14.16 和 13.19 之前的版本受到影响。EUC_TWMULE_INTERNAL
PostgreSQL 项目感谢 Rapid7 首席安全研究员 Stephen Fewer 报告此问题。
错误修复和改进
此次更新修复了过去几个月报告的 70 多个错误。下面列出的问题会影响 PostgreSQL 17。其中一些问题也可能会影响其他受支持的 PostgreSQL 版本。
- 恢复连接请求中 >63 字节数据库名称和用户名的 v17 之前的截断行为。
- 不要对并行工作者执行连接权限检查和限制,而是从领导进程继承这些。
- 从等待事件名称中删除Lock后缀LWLock。
- 修复窗口聚合中可能重复使用陈旧结果的问题,这可能会导致不正确的结果。
- 修复了真空中的几种竞争条件 ,在最坏的情况下可能会导致系统目录损坏。
- 针对截断表和索引的几项修复 ,可防止潜在的损坏。
- 修复了分离分区的问题,其中其自己的外键约束引用了分区表。
- 修复FFn(例如FF1)的格式代码to_timestamp,其中之前的整数格式代码FFn将消耗所有可用的数字。
- 修复 SQL/JSON 并XMLTABLE()在必要时对特定条目进行双引号处理。
- 包括ldapscheme选项在内 pg_hba_file_rules()。
- 对的几项修复UNION,包括不合并具有不兼容排序规则的列。
- 一些修复可能会影响可用性或启动与 PostgreSQL 的连接的速度。
- 修复逻辑解码输出中的多个内存泄漏。
- 修复 PL/Python中的几个内存泄漏。
- 为 增加 psql tab 补全功能 COPY (MERGE INTO)。
- 显示损坏的pg_controlpg_controldata文件 的信息时更具弹性 。
- pg_restore 修复zstd 压缩数据的内存泄漏问题。
- 已修复pg_basebackup 以正确处理 Windows 上超过 2GB 的 pg_wal.tar 文件。
- 修改earthdistance 以使用 SQL 标准函数体,这修复了数据库使用此扩展时主要版本升级到 v17 时可能出现的问题。
- 修复当函数定义未更新到最新版本时pageinspect发生崩溃的 情况。brin_page_items()
- 尝试取消 postgres_fdw 远程查询时修复竞争条件。
更新
所有 PostgreSQL 更新版本都是累积的。与其他次要版本一样,用户无需转储并重新加载其数据库或使用pg_upgrade即可应用此更新版本;您只需关闭 PostgreSQL 并更新其二进制文件即可。
跳过一个或多个更新版本的用户可能需要运行额外的更新后步骤;请参阅早期版本的发行说明了解详细信息。
欲了解更多详细信息,请参阅 发行说明。
来源:https://www.postgresql.org/about/news/postgresql-173-167-1511-1416-and-1319-released-3015/