发布日期:. 2008-01-07
这个版本包含各种自7.4.18以来的修复,包括重大安全问题的修复。 关于7.4主版本的新特性的信息,请查阅第 E.284 节。
运行7.4.X的用户不需要转储/恢复。不过,如果你是从一个早于7.4.11的版本升级而来, 请查看第 E.273 节。
阻止索引中的函数用用户的权限执行VACUUM
、ANALYZE
等 (Tom)
在索引表达式和部分索引判断中使用的函数在创建一个新的表条目时评估。
早就知道如果某人修改了一个不受信任的用户拥有的表,会造成特洛伊木马代码执行的风险。
(请注意,触发器、缺省、检查约束等,造成同样类型的风险。)但是索引中的函数造成额外的危险,
因为它们将被日常维护操作(如VACUUM FULL
)执行,
而它们在超级用户账户下通常是自动执行的。例如,
一个不法用户通过设置一个特洛伊木马索引定义并等待下一个日常清理,可以使用超级用户权限执行代码。
该修复为标准的维护操作安排了(包括VACUUM
、ANALYZE
、REINDEX
、
和CLUSTER
)作为表的所有者执行而不是调用的用户,
相同的权限切换机制早已为SECURITY DEFINER
函数使用了。
为了阻止绕开这个安全措施,SET SESSION AUTHORIZATION
和SET ROLE
现在禁止在SECURITY DEFINER
内容中执行。 (CVE-2007-6600)
修复正则表达式包中的各种bug (Tom, Will Drewry)
适当配置的正则表达式模式可能会导致崩溃、无限或接近无限循环、和/或大量的内存消耗, 所有这些都造成从不受信任的源接受正则表达式搜索模式的应用拒绝服务的风险。 (CVE-2007-4769, CVE-2007-4772, CVE-2007-6067)
要求使用/contrib/dblink
的非超级用户只使用密码认证作为安全措施 (Joe)
在7.4.18中出现的这个修复是不完全的,因为它只堵住了一些dblink
函数的漏洞。
(CVE-2007-6601, CVE-2007-3278)
修复WHERE false AND var IN (SELECT ...)
的某些情况下规划器失败 (Tom)
修复使用多字节数据库编码时translate()
中潜在的崩溃 (Tom)
修复PL/Python在长的异常消息时不崩溃 (Alvaro)
ecpg语法分析器修复 (Michael)
使contrib/tablefunc
的crosstab()
独立的将NULL rowid作为一个类别处理,而不是崩溃 (Joe)
修复tsvector
和tsquery
输出例程,以正确的转义反斜杠 (Teodor, Bruce)
修复to_tsvector()
在大的输入字符串上的崩溃 (Teodor)
当重新生成configure
脚本时,要求指定要使用的Autoconf的版本 (Peter)
这只影响开发者和打包者。这个修改是为了阻止未经测验的Autoconf 和PostgreSQL版本的组合的意外使用。 如果你实在是想要使用一个不同的Autoconf版本, 可以移除版本校验,但是结果如何就是你的责任了。