PostgreSQL 9.3.3、9.2.7、9.1.12、9.0.16 和 8.4.20 发布!

发布于 2014-02-20,作者:PostgreSQL 全球开发组

PostgreSQL 全球开发组发布了 PostgreSQL 数据库系统所有受支持版本的重要更新,其中包括次要版本 9.3.3、9.2.7、9.1.12、9.0.16 和 8.4.20。此更新包含多个安全问题的修复,以及对复制和数据完整性问题的若干修复。强烈建议所有用户尽早更新其安装,特别是那些使用二进制复制或运行高安全性应用程序的用户。

安全修复

此更新修复了 CVE-2014-0060,其中 PostgreSQL 未能正确执行 ROLE 管理的 WITH ADMIN OPTION 权限。在此修复之前,ROLE 的任何成员都能够授予其他人访问同一 ROLE 的权限,无论该成员是否被赋予了 WITH ADMIN OPTION 权限。它还修复了多个权限提升问题,包括:CVE-2014-0061CVE-2014-0062CVE-2014-0063CVE-2014-0064CVE-2014-0065CVE-2014-0066。有关这些问题的更多信息,请访问我们的安全页面安全问题详细信息维基页面

在此版本中,我们还提醒用户注意一个已知的安全漏洞,该漏洞允许同一机器上的其他用户在执行“make check”时获得操作系统帐户的访问权限:CVE-2014-0067。“Make check”通常是使用源代码构建 PostgreSQL 的一部分。由于在不给我们的测试基础设施带来重大问题的情况下无法修复此问题,因此将单独公开发布一个补丁。在此之前,强烈建议用户不要在有不受信任用户的机器上运行“make check”。

复制和数据完整性修复

此更新还修复了一些影响二进制复制和行锁定的问题,在某些情况下可能导致可恢复的数据损坏。对复制期间的索引页锁定问题进行了一些修复,这可能会导致副本上的索引损坏。版本 9.3 中修复了一个事务冻结错误,该错误可能导致循环多次遍历事务 ID 回绕的数据库重新出现旧的行版本。我们还修复了三个可能导致新备用服务器启动失败的错误。最后,此更新修复了一个可能破坏外键的问题,尽管在应用更新后仍然需要手动修复键本身。

在 9.3 版本中,这些修复导致添加了几个新的服务器配置设置来控制多事务冻结。重要的是,备用服务器必须在复制主服务器更新之前更新到 9.3.3 或更高版本,否则复制将被破坏。

其他改进

除了以上内容外,此版本还修复了以下问题

  • 修复可见性映射更改的 WAL 日志记录
  • 确保 GIN 索引记录所有插入
  • 使 pause_at_recovery_target 在正确的时间暂停
  • 确保 walreceiver 及时发送热备反馈消息
  • 防止超时中断从主线代码夺取控制权
  • 消除几个竞争条件
  • 修复错误消息中一些损坏的提示
  • 防止 SSL 连接丢失时服务器锁定
  • 修复两个 Unicode 处理问题
  • 防止某些子选择语法崩溃
  • 防止从零列表选择时崩溃
  • 修复 LATERAL 的两个错误
  • 修复 UNION ALL、分区和更新的问题
  • 确保 ANALYZE 了解范围上的域
  • 在使用默认表空间时消除权限检查
  • 修复 JSON 函数中的内存泄漏
  • 允许使用事件触发器的扩展
  • 在 JSON 输出中正确区分数字
  • 修复 pg_start_backup() 和 pg_stop_backup() 的权限
  • 接受 SHIFT_JIS 作为区域设置名称
  • 修复 SQL 函数变量的 .* 展开
  • 防止某些 COPY 连接失败时出现无限循环
  • 修复 Windows 上客户端的几个问题
  • 允许使用 Visual Studio 2013 构建 PostgreSQL
  • 更新时区文件以进行最新更改

以下所有可选模块(扩展)也有修复:ECPG、dblink、ISN、pgbench、pg_stat_statements 和 postgres_fdw。有关上述某些问题的其他更改和详细信息可以在发行说明中找到。

与其他次要版本一样,用户不需要转储和重新加载数据库或使用 pg_upgrade 来应用此更新版本;您可以简单地关闭 PostgreSQL 并更新其二进制文件。跳过了多个更新版本的用户可能需要执行额外的更新后步骤;有关详细信息,请参阅发行说明。

链接:* 下载 * 发行说明 * 安全页面 * 安全问题详细信息页面