首页 -> 安全研究

安全研究

安全漏洞
PostgreSQL远程拒绝服务攻击漏洞

发布日期:2003-03-12
更新日期:2003-03-14

受影响系统:
PostgreSQL PostgreSQL 7.2.2
PostgreSQL PostgreSQL 7.2.1
PostgreSQL PostgreSQL 7.2
PostgreSQL PostgreSQL 7.1.3
PostgreSQL PostgreSQL 7.1.2
PostgreSQL PostgreSQL 7.1.1
PostgreSQL PostgreSQL 7.1
PostgreSQL PostgreSQL 7.0.3
PostgreSQL PostgreSQL 7.0.2
PostgreSQL PostgreSQL 7.0.1
PostgreSQL PostgreSQL 6.5.3
PostgreSQL PostgreSQL 6.3.2
PostgreSQL PostgreSQL 7.0
    - Conectiva Linux 8.0
    - Debian Linux 3.0
    - SuSE Linux 7.3
描述:
PostgreSQL是一款高级对象-关系型数据库管理系统,支持扩展的SQL标准子集。

PostgreSQL中的recv_and_check_password0函数对用户输入缺少正确检查,远程攻击者可以利用这个漏洞对数据库进行拒绝服务攻击。

当连接数据库时,postmaster会派生一个新的进程,然后子进程调用src/backend/postmaster/postmaster.c:DoBackend()函数,这个函数调用src/backend/libpq/auth.c:ClientAuthentication()函数来执行客户端验证,如果攻击者的主机存在与pg_hba.conf文件中,就会之后触发src/backend/libpq/auth.c:recv_and_check_password0()的调用,不过auth.c中包含如下代码:

[snip]
static int recv_and_check_password0(Port *port) {
        int32 len;
        char *buf;


        if (pq_getint(&len, 4) == EOF)
                return STATUS_EOF;
        len -= 4;
        buf = palloc(len); /* len is taken from a packet */
[snip]

其中上面分配的内存大小由用户提供输入,攻击者提交恶意的数据就可以导致数据库崩溃,产生拒绝服务攻击。

<*来源:Sir Mordred (sir.mordred@hushmail.com
  
  链接:http://marc.theaimsgroup.com/?l=bugtraq&m=104749435311915&w=2
*>

建议:
临时解决方法:

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

* 限制只有可信的主机访问PostgreSQL。

厂商补丁:

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

http://www.postgresql.org

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