2025年9月25日: PostgreSQL 18 发布!

PostgreSQL 17.3, 16.7, 15.11, 14.16, and 13.19 发布!

发布于 2025-02-13,作者:PostgreSQL 全球开发组
PostgreSQL 项目 安全

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。

PostgreSQL 中的 libpq 函数 PQescapeLiteral()PQescapeIdentifier()PQescapeString()PQescapeStringConn() 中的转义语法未得到妥善处理,这使得数据库输入提供者能够在某些使用模式下实现 SQL 注入。具体来说,SQL 注入要求应用程序使用函数结果来构造 psql(PostgreSQL 交互式终端)的输入。同样,PostgreSQL 命令行实用程序中的转义语法未得到妥善处理,当 client_encodingBIG5server_encodingEUC_TWMULE_INTERNAL 时,命令行参数的来源可能导致 SQL 注入。受影响的版本包括 PostgreSQL 17.3、16.7、15.11、14.16 和 13.19 之前的版本。

PostgreSQL 项目感谢 Rapid7 的首席安全研究员 Stephen Fewer 报告了此问题。

错误修复和改进

本次更新修复了过去几个月报告的 70 多个错误。下面列出的问题会影响 PostgreSQL 17。其中一些问题也可能影响 PostgreSQL 的其他受支持版本。

  • 为大于 63 字节的数据库名称和用户名在连接请求中恢复 v17 之前的截断行为。
  • 不对并行工作进程执行连接权限检查和限制,而是让它们继承领导进程的权限。
  • LWLock 等待事件名称中移除 Lock 后缀。
  • 修复窗口聚合中可能出现的陈旧结果重用问题,这可能导致结果不正确。
  • 修复了 vacuum 中的几个竞态条件,最坏情况下可能导致系统目录损坏。
  • 修复了 截断表和索引的几个问题,防止潜在的损坏。
  • 修复了在分离分区时,其自身的外键约束引用了分区表的情况。
  • 修复了 to_timestampFFn(例如 FF1)格式代码,其中 FFn 前的整数格式代码会消耗所有可用数字。
  • 对 SQL/JSON 和 XMLTABLE() 进行修复,在必要时对特定条目进行双引号处理。
  • pg_hba_file_rules() 中包含 ldapscheme 选项。
  • 修复了 UNION 的多个问题,包括不对具有不兼容排序规则的列进行合并。
  • 修复了可能影响可用性或连接 PostgreSQL 速度的多个问题。
  • 修复了逻辑解码输出中的多个内存泄漏。
  • 修复了 PL/Python 中的多个内存泄漏。
  • 为 psql 添加了对 COPY (MERGE INTO) 的标签补全。
  • 使 pg_controldata 在显示来自损坏的 pg_control 文件中的信息时更具弹性。
  • 修复了使用 zstd 压缩数据时 pg_restore 中的内存泄漏问题。
  • 修复了 pg_basebackup 在 Windows 上正确处理大小超过 2GB 的 pg_wal.tar 文件的问题。
  • 修改 earthdistance 以使用 SQL 标准函数体,这修复了当数据库使用此扩展时,与 v17 主要版本升级可能出现的问题。
  • 修复了在 brin_page_items() 函数定义未更新到最新版本的情况下,pageinspect 崩溃的问题。
  • 修复了尝试取消 postgres_fdw 远程查询时的竞态条件。

本次发布还更新了时区数据文件至 tzdata release 2025a,以应对巴拉圭的 DST 法规变更,并对菲律宾进行了历史性修正。

更新

所有 PostgreSQL 更新版本都是累积的。与其他次要版本一样,用户不需要转储和重新加载数据库或使用 pg_upgrade 来应用此更新版本;您可以直接关闭 PostgreSQL 并更新其二进制文件。

跳过一个或多个更新版本的用户可能需要运行额外的更新后步骤;请参阅早期版本的发行说明以获取详细信息。

有关更多详细信息,请参阅 发行说明

链接

如果您对此版本公告有任何更正或建议,请将其发送至 pgsql-www@lists.postgresql.org 公共 邮件列表