企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
# E.40\. 发布8.4.13 > **发布日期:** 2012-08-17 该发布包含来自8.4.12各种修复。 关于8.4主要发布的新功能的信息, 参阅[Section E.53](#calibre_link-49)。 ## E.40.1\. 迁移到版本8.4.13 运行8.4.X不需要备份/恢复。 然而,如果你从8.4.10更早版本更新,参阅8.4.10的发布说明。 ## E.40.2\. 变化 * 通过XML实体引用避免访问外部文件/URL(Noah Misch, Tom Lane) `xml_parse()`可以尝试读取外部文件夹或者URL作为需要解决DTD 以及XML值中的实体引用,从而允许未授权数据库用户尝试读取与数据库服务器权限的数据。 当外部数据还没直接返回给用户时,如果数据没有解析为有效XML,那么它的一部分可能会暴露 在错误信息中;并且无论如何检查文件是否存在的能力可能对攻击者有用。 * 阻止通过`contrib/xml2`的 `xslt_process()`访问外部文件夹/URL(Peter Eisentraut) libxslt提供通过样式表命令读写文件夹和URL的能力, 从而允许未授权数据库用户以读写带有数据库服务器权限的数据。 禁止通过libxslt的安全选项的正确使用。(CVE-2012-3488) 同时,删除`xslt_process()`的能力从外部文件夹/URL中读取文件和样式表。 当这是已证明"特性"时,那么它被长期视为坏主意。 为了CVE-2012-3489修复打破该能力,而不是付出努力尝试修复它, 我们只是打算简单地删除它。 * 防止btree索引页过早回收利用(Noah Misch) 当我们允许只读事务略过已分配XID时, 当只读事务仍然运行到它时, 那么我们介绍已删除btree页可以被重新利用的可能性。 这会导致不正确索引搜索结果。 在该字段产生错误的可能性很低,因为时间要求, 但尽管如此它应该被修复。 * 修复带有新创造或者重新设置序列的碰撞安全漏洞(Tom Lane) 如果在新创造或者重新设置序列上执行`ALTER SEQUENCE`, 然后在它上精确执行一个`nextval()`调用, 然后服务器崩溃了,WAL回放可以恢复序列到似乎没有执行`nextval()`的状态下, 然而允许通过下一个`nextval()`调用再次返回第一个序列值。 特别是这可以表现为`serial`列,因为串行列的序列的创建包含 `ALTER SEQUENCE OWNED BY`步骤。 * 在`pg_start_backup()`之后确保 `backup_label`文件是fsync (Dave Kerr) * 后面补丁9.1改进以压缩fsync请求队列(Robert Haas) 在检查点期间提高了性能。 9.1变化已看到似乎安全的足够字段测试到后面补丁中。 * 仅仅允许autovacuum通过直接的封锁进程被自动取消(Tom Lane) 原代码可能允许某些情况下的不一致操作; 特别是,在少于`deadlock_timeout`宽限期后可以取消autovacuum。 * 改善autovacuum取消记录(Robert Haas) * 修复日志收集器以致于在服务器启动后 第一个日志循环期间运行`log_truncate_on_rotation` (Tom Lane) * 修复`WITH`附属于嵌套设置操作 (`UNION`/`INTERSECT`/`EXCEPT`)(Tom Lane) * 确保参照子查询的整行不包含任何额外的 `GROUP BY`或者`ORDER BY`列(Tom Lane) * 在`CREATE TABLE`期间`CHECK`约束和索引定义中不 允许拷贝整行引用(Tom Lane) 这种情况可以产生带有 `LIKE`或者`INHERITS`的`CREATE TABLE`。 复制整列变量被错误地标记带有不是一个新的原来表的行类型。 为`LIKE`拒绝理由似乎是合理的, 因为行类型可能后面会分散。 为`INHERITS`我们理论上应该接受它, 伴随对父表的行类型的隐含 胁迫;但比起后端补丁似乎是安全的需要更多的工作。 * 修复`ARRAY(SELECT ...)`子查询中的内存泄露 (Heikki Linnakangas, Tom Lane) * 从正则表达式修复常见前缀提取(Tom Lane) 该代码被量化的括号子表达式搞糊涂了,比如`^(foo)?bar`。 这将导致这种模式不正确的搜索索引优化。 * 修复`interval`常量中带有解析符号 `_hh_``:``_mm_`和 `_hh_``:``_mm_``:``_ss_`字段错误(Amit Kapila, Tom Lane) * 正确报告`contrib/xml2`的`xslt_process()`中错误(Tom Lane) * 为了Morocco和Tokelau中DST变化规律更新时区数据文件到tzdata发布2012e