首页 -> 安全研究

安全研究

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

发布日期:2004-02-04
更新日期:2004-02-11

受影响系统:
GNU RADIUS 1.1
不受影响系统:
GNU RADIUS 1.2
描述:
BUGTRAQ  ID: 9578
CVE(CAN) ID: CVE-2004-0131

GNU Radius是一款开放源代码远程用户验证和审计服务器。

GNU Radius在处理部分UDP数据包时存在问题,远程攻击者可以利用这个漏洞对服务程序进行拒绝服务攻击。

问题存在于lib/logger.c文件定义的rad_print_request()中:

[0] stat_pair = avl_find(req->request, DA_ACCT_STATUS_TYPE);
    if (stat_pair) {
[1]     VALUE_PAIR *sid_pair = avl_find(req->request,
                        DA_ACCT_SESSION_ID);
[2]     DICT_VALUE *dval = value_lookup(stat_pair->avp_lvalue,
                        "Acct-Status-Type");
        char nbuf[64], *stat;
[3]     if (dval)
            stat = dval->name;
        else {
[4]         snprintf(nbuf, sizeof nbuf, "%ld", sid_pair->avp_lvalue);
            stat = sbuf;
...

接收到包含属性Acct-Status-Type,但没有任何数据的UDP包时会触发此漏洞。rad_print_request() 的[0]行Acct-Status-Type被调用,在[1]行Acct-Session-Id也被调用,而在[2]上本地指针dval指向Acct-Status-Type,由于没有任何值赋给此变量,因此dval会变为NULL,程序会由于引用非法而导致崩溃。

<*来源:iDEFENSE
  
  链接:http://www.idefense.com/application/poi/display?id=71&type=vulnerabilities&flashstatus=true
*>

建议:
厂商补丁:

GNU
---
GNU Radius 1.2已经修补此漏洞:

http://www.gnu.org/software/radius/radius.html

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