首页 -> 安全研究

安全研究

安全漏洞
PostgreSQL字符集转换处理权限提升漏洞

发布日期:2005-05-10
更新日期:2005-05-10

受影响系统:
PostgreSQL PostgreSQL 8.0.2
PostgreSQL PostgreSQL 8.0.1
PostgreSQL PostgreSQL 8.0
PostgreSQL PostgreSQL 7.4.7
PostgreSQL PostgreSQL 7.4.6
PostgreSQL PostgreSQL 7.4.5
PostgreSQL PostgreSQL 7.4.3
PostgreSQL PostgreSQL 7.4
PostgreSQL PostgreSQL 7.3.9
PostgreSQL PostgreSQL 7.3.8
PostgreSQL PostgreSQL 7.3.6
PostgreSQL PostgreSQL 7.3.4
PostgreSQL PostgreSQL 7.3.3
PostgreSQL PostgreSQL 7.3.2
PostgreSQL PostgreSQL 7.3.1
PostgreSQL PostgreSQL 7.3
Trustix Secure Enterprise Linux 2.0
描述:
BUGTRAQ  ID: 13476
CVE(CAN) ID: CVE-2005-1409

PostgreSQL是一款高级对象-关系型数据库管理系统,支持扩展的SQL标准子集。

PostgreSQL的字符集转换函数的实现存在缓冲区溢出漏洞,远程攻击者可能利用此漏洞提升自己的权限。

非特权用户可以从SQL命令调用客户端到服务端字符集转换函数,但这些函数并不安全,攻击者可以提供恶意的参数,导致以转换函数的权限执行任意请求。

<*来源:david (david@fetter.org
  
  链接:http://www.postgresql.org/about/news.315
*>

建议:
临时解决方法:

如果您不能立刻安装补丁或者升级,NSFOCUS建议您采取以下措施以降低威胁:

* 禁用这些函数的公共EXECUTE访问,如下:

以超级用户执行以下SQL命令:

UPDATE pg_proc SET proacl = '{=}'
WHERE pronamespace = 11 AND pronargs = 5
    AND proargtypes[2] = 'cstring'::regtype;

必须对每个安装的数据库都执行以上命令,包括template1和template0。可以如其他数据库那样修复template1,但修复template0需要额外的步骤。首先:

UPDATE pg_database SET datallowconn = true WHERE datname = 'template0';

然后连接到template0并执行pg_proc更新,最后:

-- 重新冻结template0:
VACUUM FREEZE;

-- 防范今后的更改:
UPDATE pg_database SET datallowconn = false WHERE datname = 'template0';

厂商补丁:

PostgreSQL
----------
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:

http://www.postgresql.org

浏览次数:3370
严重程度:0(网友投票)
本安全漏洞由绿盟科技翻译整理,版权所有,未经许可,不得转载
绿盟科技给您安全的保障