PostgreSQL 10.1、9.6.6、9.5.10、9.4.15、9.3.20 和 9.2.24 发布!
发布于 2017-11-09,作者:PostgreSQL 全球开发组
社区 PostgreSQL 项目
PostgreSQL 全球开发组已发布了我们数据库系统的所有受支持版本的更新,包括 10.1、9.6.6、9.5.10、9.4.15、9.3.20 和 9.2.24。此版本修复了三个安全问题。此版本还修复了在 BRIN 索引、逻辑复制以及过去三个月中报告的其他错误中发现的问题。
所有使用受影响的 PostgreSQL 版本的用户应尽快更新。如果您使用 BRIN 索引或 contrib/start-scripts,请参阅发行说明,了解其他升级后步骤。
安全问题
此版本修复了三个安全漏洞
CVE-2017-12172:启动脚本允许数据库管理员修改 root 拥有的文件
在此版本之前,postmaster(在较新版本中为“postgres”)进程的启动日志文件在进程仍然由 root 拥有时打开。使用此设置,数据库所有者可以指定他们无权访问的文件,并导致该文件被记录的数据损坏。
此修复程序确保启动日志文件以指定运行 PostgreSQL 服务器的用户身份打开。任何使用启动脚本的用户都需要确保启动日志文件由指定运行 PostgreSQL 服务器的用户拥有。
CVE-2017-15099:INSERT ... ON CONFLICT DO UPDATE 未能强制执行 SELECT 权限
在此版本之前,“INSERT ... ON CONFLICT DO UPDATE”不会检查执行用户是否具有对执行冲突检查的索引执行“SELECT”的权限。此外,在启用了行级安全性的表中,“INSERT ... ON CONFLICT DO UPDATE”不会在执行更新之前检查该表的 SELECT 策略。
此修复程序确保“INSERT ... ON CONFLICT DO UPDATE”在执行之前检查表权限和 RLS 策略。
错误修复和改进
此更新还修复了过去几个月报告的许多错误。其中一些问题仅影响版本 10,但许多问题影响所有受支持的版本
- 修复 BRIN 索引中的竞争条件,该条件可能导致某些行未包含在索引中。
- 修复从 PL 语言函数调用逻辑解码时的崩溃。
- 修复了逻辑复制的多个问题。
- 恢复附加到 INSERT/UPDATE/DELETE 语句的 CTE 的行为,使其与 10 版本之前的行为一致。
- 防止在处理嵌套触发器触发时发生低概率崩溃。
- 当 FILTER 子句中的条件求值为 FALSE 时,不要评估聚合函数的参数表达式。这符合 SQL 标准行为。
- 修复当多个 GROUPING SETS 列包含相同的简单变量时,出现的不正确查询结果。
- 修复在 SELECT 中的目标列表中评估返回集合的函数时,查询生命周期内的内存泄漏。
- 修复了并行查询执行的多个问题,包括修复了包含某种类型的位图扫描的某些查询的并行执行中的崩溃。
- 修复 json_build_array()、json_build_object()、jsonb_build_array() 和 jsonb_build_object() 以正确处理显式 VARIADIC 参数。
- 防止将无限浮点值强制转换为 numeric 类型。
- 修复 autovacuum 的“工作项”逻辑,以防止可能的崩溃和工作项的静默丢失。
- 修复了有关向视图末尾添加列的多个 VIEW 问题。
- 修复了用户创建的范围数据类型的可哈希性检测。
- 改进了在查询计划中使用列上的扩展统计信息。
- 防止在较早发生 statement_timeout 时忽略 idle_in_transaction_session_timeout。
- 修复了在会话中执行任何查询之前处理超过 20 亿个事务时,可能发生的低概率 NOTIFY 消息丢失。
- 修复了多个文件系统交互问题。
- 当 COPY 或 lo_export() 中的文件创建失败时,正确恢复 umask 设置。
- 修复 pg_dump 以确保它以有效的顺序发出 GRANT 命令。
- 修复 pg_basebackup 对表空间路径的匹配,以在比较之前规范化两个路径,以帮助提高 Windows 兼容性。
- 修复 libpq 以在尝试读取“~/.pgpass”文件时不需要用户的主目录存在。
- 修复了 ecpg 的多个问题。
此更新还包含 tzdata 版本 2017c,其中包含对斐济、纳米比亚、北塞浦路斯、苏丹、汤加和特克斯和凯科斯群岛的更新,以及对阿拉斯加、阿皮亚、缅甸、加尔各答、底特律、爱尔兰、纳米比亚和帕果帕果的历史修正。
9.2 版本终止支持通知
PostgreSQL 9.2 版本现已终止支持 (EOL)。社区不会为此版本发布其他更新或安全补丁。仍在使用 9.2 的用户应尽快升级。有关更多信息,请参阅我们的版本控制政策。
链接