安全研究
安全漏洞
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(网友投票)
本安全漏洞由绿盟科技翻译整理,版权所有,未经许可,不得转载 绿盟科技给您安全的保障 |