E.113. 版本 7.3.15 #
发行日期
2006-05-23
此发行版包含 7.3.14 之后的多种修复,包括针对极其严重安全问题的补丁。
E.113.1. 迁移到版本 7.3.15
对于运行 7.3.X 的用户,不需要进行转储/恢复。不过,如果你是从早于 7.3.13 的版本升级,请参阅 7.3.13 的发布说明。
要完全防范 CVE-2006-2313 和 CVE-2006-2314 所述的 SQL 注入攻击,可能需要更改应用程序代码。如果你有把不可信字符串嵌入 SQL 命令的应用程序,应尽快检查它们,确保使用了推荐的转义技术。在大多数情况下,应用程序应使用库或驱动提供的子例程(如 libpq 的 PQescapeStringConn())来执行字符串转义,而不是依靠临时代码来做。
E.113.2. 变更
更改服务器,在所有情形下拒绝无效编码的多字节字符(Tatsuo、Tom)
虽然 PostgreSQL 向这个方向发展已有一段时间,但现在检查统一应用于所有编码和所有文本输入,而且总是错误而不只是警告。此变更可防范 CVE-2006-2313 所述类型的 SQL 注入攻击。
拒绝字符串字面量中对
\'的不安全使用作为针对 CVE-2006-2314 所述类型 SQL 注入攻击的服务器端防御,服务器现在只接受
''而不接受\'作为 SQL 字符串字面量中 ASCII 单引号的表示。默认情况下,只有当client_encoding设为仅客户端编码(SJIS、BIG5、GBK、GB18030 或 UHC)时才拒绝\',这正是可能发生 SQL 注入的场景。需要时可用新的配置参数backslash_quote调整此行为。注意,要完全防范 CVE-2006-2314 可能需要客户端更改;backslash_quote的目的之一是让不安全的客户端明显地不安全。修改 libpq 的字符串转义例程,使其感知编码问题
这为使用 libpq 的应用程序修复了 CVE-2006-2313 和 CVE-2006-2314 所述的安全问题。并发使用多个 PostgreSQL 连接的应用程序应迁移到
PQescapeStringConn()和PQescapeByteaConn(),以确保为每个数据库连接中使用的设置正确转义。以“手工”方式做字符串转义的应用程序应改为依靠库例程。修复一些不正确的编码转换函数
win1251_to_iso、alt_to_iso、euc_tw_to_big5、euc_tw_to_mic、mic_to_euc_tw都在不同程度上损坏。清理字符串中偶然残留的
\'使用(Bruce、Jan)修复服务器正确使用自定义 DH SSL 参数(Michael Fuhr)
修复各种小的内存泄漏