红帽企业Linux 2.1带的PostgreSQL是不是有CVE-2006-2313或者CVE-2006-2114的问题?
解决方法:

CVE-2006-2113和CVE-2006-2114描述了一个缺陷,当客户端不正确的处理(escape)一个多字节字符串时,可能会导致SQL注入攻击(injection attack)。RHSA-2006:0526解决了红帽企业Linux 3和4上PostgreSQL PQescapeString 函数处理多字节字符串的方法问题。 PQescapeString函数在红帽企业Linux 2.1带的PostgreSQL上不存在。

RHSA-2006:0526 也提到了一个预防性的解决方法,它允许PostgreSQL服务器探测和阻止某些被不正确的处理的多字节字符串。 这个解决方法被认为过于危险性和攻击性,因此决定不把它向后放到红帽企业Linux 2.1带的PostgreSQL版本里。

有几种方法可以使得一个数据库服务器在不做任何代码修改的情况下,在这些攻击下能够保持安全。下面是建议的方法:

   * 使用单字节客户端编码(比如,一个拉丁语系的编码)。 服务器的编码不用考虑。
   * 使用UTF8编码(在PostgreSQL 7.1文档中,称为UNICODE)。为了安全起见,客户端和服务器的编码都必须是UTF8。

已知危险的的案例包括在客户端上使用SJIS,BIG5,GBK,GB18030或者UHC(不考虑服务器的编码),和客户端使用UTF8编码,服务器上使用另外的编码。